[英]C++: Forward declaration of class member (variable)
是否可以向前声明一个类成员变量? 我想做类似以下的事情(但是不起作用):
class myClass;
bool myClass::myvar;
void main()
{
myClass* aaa;
...
aaa->myvar = false;
}
在此示例中,myvar是myClass的布尔成员。
不,你不能。 想象一下,这种方式将班级分散在不同的翻译单元中。
那它将有哪些成员? 对象的布局将是什么?
太难了
我建议在这种情况下使用set / get方法。 这样就不会将内部数据暴露给外界。
在myClass的标题中:
class myClass
{
public: setMyVar(const bool& value);
public: inline const bool& getMyVar() const;
private: bool myVar;
};
在您的实现中:
class myClass;
void main()
{
myClass* aaa;
...
aaa->setMyVar(false);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.