繁体   English   中英

C ++:类成员的前向声明(变量)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM