c++ 嵌套结构映射找不到成员

c++ Nested struct map can't find member

本文关键字:找不到 成员 映射 结构 嵌套 c++      更新时间:2023-10-16

>我正在尝试制作纸牌游戏,并决定将各个卡牌类型的数据存储为主结构中的结构。这似乎工作正常。但是,当尝试映射结构时,编译器看不到成员。"艺术不是卡片的成员">我在任何地方都找不到解决这个问题的方法。帮助将不胜感激

struct Card001 {
sf::Texture Art;
void loadArt() {
if (!Art.loadFromFile("Sprites/BasicCard.png")) {
// error...
}
}
};
struct Cards {
struct Card001 card0011, card0012, card0013;
};
int function_cardTexture(int card) {
//removes the last 1
card = card - 10000;
std::map < std::string, Cards > Vars;
//turn int card into a string
std::string a = static_cast < std::ostringstream * > ( & (std::ostringstream() << card)) - > str();
//combines card and string a into one string
std::string nametext = "Library.card" + a;
sf::Texture text = Vars[nametext].Art;
return (1);
}

Code Vars[nametext] 得到了一个卡片的实例,卡片确实没有成员艺术,而是有成员 card0011 等。

其中有成员艺术是结构卡001。

Cards &cards = Vars[nametext];
Card001 &card0011 = cards.card0011;
sf::Texture &art = card0011.Art;

感知您定义的结构的层次结构。