【问题标题】:How do you assign two types of data to one variable?如何将两种类型的数据分配给一个变量?
【发布时间】:2016-10-11 17:22:02
【问题描述】:

几周前我刚开始学习 C++,现在我正在尝试制作二十一点游戏。 我试图做的是创建一个数组,其中包含所有卡片的变量,例如:h1、hj、c4、ck;这些代表红心 1、红心杰克、梅花 4 和梅花王。

我希望这些变量同时包含一个字符串(卡片的名称)和一个整数(要添加的数字的值)。

有没有办法让一个变量包含两个值?

谢谢。

【问题讨论】:

  • 听起来你需要一个对象。
  • 在开始任何类型的项目之前,您都应该完成 C++ 基础知识的学习
  • 请注意,如果这是一个学校项目,我怀疑是这样,请确保您彻底了解您选择的实现。结构或类可能是您的老师所期望的

标签: c++ arrays variables


【解决方案1】:

你可以为你需要的变量创建一个结构体。

struct card
{
      string name;
      int value;
};

然后按如下方式使用:

card.name = "hearts";
card.value = 1;

【讨论】:

    【解决方案2】:

    简单来说有两种解决方案:

    1) 使用元组

    std::tuple<std::string,int> Hearts1=std::make_tuple("h1", 12);
    std::tuple<std::string,int> Clubs1=std::make_tuple("c1", 13)
    

    查看更多:http://en.cppreference.com/w/cpp/utility/tuple

    2) 使用对象

    class Hearts
    {
      std::string name;
      int value;
    };
    
    class Clubs
    {
      std::string name;
      int value
    };
    
    int main()
    {
      Clubs CO; CO.name="abc"; CO.value=12;
      Hearts HO; HO.name="dce"; HO.value=13;
    }
    

    我建议在进行此类项目之前学习 C++ 编程的基础知识。我强烈推荐“C++ 编程语言”(B.Stroustrup) 入门。

    【讨论】:

    • 很酷,谢谢,这看起来可行。我会调查的。
    • 与其为每个西装创建一个单独的类,不如考虑写class card并将西装作为一个属性。
    【解决方案3】:

    您还可以使用具有相同索引的两个数组。只要您确保它们是同时创建和更新的,以便具有相同索引的元素引用同一张卡片。

    【讨论】:

      猜你喜欢
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 2023-01-09
      • 2023-03-31
      相关资源
      最近更新 更多