使用未定义的类 - 前进声明C ++

时间:2015-12-12 05:49:19

标签: c++ class pointers instance forward-declaration

我有以下程序,其中我有2个类,即A类和B类,其中每个类都有另一个类的实例声明为私有成员。

仅供参考,对于一个我正在使用动态分配(指针实例)的类而在另一个类中我正在使用自动分配(普通实例)。

(Program.h)

class A;
class B;

class A
{
    A();
    ~A();
    public:
    void InitA();
    void funcA;
    private:
    B b; // ERROR! on code compilation: "A::b uses undefined class B"
}

class B
{
    B();
    ~B();
    public:
    void InitB();
    void funcB;
    private:
    A *a;
}
</code>

(Program.cpp)

class A;
class B;

class A
{
    A();
    ~A();
    public:
    void InitA();
    void funcA;
    private:
    B b; // ERROR! on code compilation: "A::b uses undefined class B"
}

class B
{
    B();
    ~B();
    public:
    void InitB();
    void funcB;
    private:
    A *a;
}
</code>

错误:“A :: b使用未定义的B类”

现在,我故意没有在A类中声明B类的指针实例,我认为不应该是这个错误的原因。这个错误可能是因为我没有正确地做正面声明。

0 个答案:

没有答案