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

时间:2016-01-07 06:23:00

标签: c++

是否可以转发声明一个类成员变量?我想做类似以下的事情(但它不起作用):

class myClass;
bool myClass::myvar;

void main()
{
    myClass* aaa;
    ...
    aaa->myvar = false;
}

在此示例中,myvar是myClass的布尔成员。

2 个答案:

答案 0 :(得分:1)

不,你不能。想象一下,这个课程分散在不同的翻译单元中 那会员会有什么?什么是对象布局?

那是难以解决的问题。

答案 1 :(得分:0)

我建议在这种情况下使用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);
}