我收到编译错误structure required on left side of . or .*
on chest.contents[0]
, but 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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)