我收到编译错误 structure required on left side of .或 .*
在 chest.contents[0]
上,但是 chest
是一个结构:
class Item {
public:
int id;
int dmg;
};
class Chest {
public:
Item contents[10];
};
int main()
{
Chest chest();
Item item = chest.contents[0];
return 0;
}
最佳答案
不,它不是,它是一个采用零参数的函数。
要默认初始化一个变量,使用
Chest chest;
在 C++11 中,此语法可用于值初始化。
Chest chest{};
在 C++03 中,这需要一个复杂的(因为有许多编译器错误)解决方法,幸运的是 Boost 库使它易于使用:
boost::value_initialized<Chest> chest;
关于c++ - 的左侧预期的结构。或 .* 但它是一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16680019/