【问题标题】:How to define elements of a Struct in the Header File?如何在头文件中定义结构的元素?
【发布时间】:2019-04-25 10:35:35
【问题描述】:

我是 C++ 新手,所以请注意。 我想做一个二十一点游戏,并有一个包含两个元素、名称和卡片点数的结构。比我有一个具有第一个结构类型的其他结构。所以现在我的第一个问题是如何比我在那里做的更好地定义名称和点。第二个问题如何从结构数组中随机获取卡片。我希望有人能解决我的问题:)

struct CardInfos
{
    string name;
    int points;
};

struct cards
{
    CardInfos zwei;
    CardInfos drei;
    CardInfos vier;
    CardInfos fuenf;
    CardInfos sechs;
    CardInfos sieben;
    CardInfos acht;
    CardInfos neun;
    CardInfos Bube;
    CardInfos Königin;
    CardInfos König;
    CardInfos Ass;
};

在 cpp 中的函数中定义....更好的方法?

cardIn.zwei.name = "Zwei";
cardIn.zwei.points = 2;
cardIn.zwei.name = "Drei";
cardIn.zwei.points = 3;
cardIn.zwei.name = "Vier";
cardIn.zwei.points = 4;
cardIn.zwei.name = "Fuenf";
cardIn.zwei.points = 5;
cardIn.zwei.name = "Sechs";
cardIn.zwei.points = 6;
cardIn.zwei.name = "Sieben";
cardIn.zwei.points = 7;
cardIn.zwei.name = "Acht";
cardIn.zwei.points = 8;
cardIn.zwei.name = "Neun";
cardIn.zwei.points = 9;

【问题讨论】:

  • cardIn.zwei.name = "Drei"; cardIn.zwei.points = 3; 和关注根本没有意义。
  • 您似乎对班级成员是什么有一个基本的误解。 cards 类型是一个类,如果你创建它的一个实例,那么每个实例都会有成员 (zwei,drei ...)。我看不出这有什么用。如果您想将卡信息存储在某个地方,您宁愿使用std::array<CardInfo,12>。请尝试澄清,cards 应该有什么好处

标签: c++ arrays struct


【解决方案1】:

你的卡片在我看来更像是一个命名空间,但两者都可以这样工作:

namespace cards {
    CardInfos zwei{"zwei", 2};
    CardInfos drei;//and so on
    CardInfos vier;
    CardInfos fuenf;
    CardInfos sechs;
    CardInfos sieben;
    CardInfos acht;
    CardInfos neun;
    CardInfos Bube;
    CardInfos Königin;
    CardInfos König;
    CardInfos Ass;
};

【讨论】:

  • 是的,那是獾。但是,如果您在标题中执行此操作,则将需要一些链接滑稽动作。 (inline 现在应该这样做)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
相关资源
最近更新 更多