1

我有一个需要指向子类的指针的类:

class A
{
    protected :
        B *pB;
}

class B : public A
{

}

但这不起作用。

4

3 回答 3

4

在开头放一个前向声明:

class B;

class A
{
    protected :
    B *pB;
}

class A : public B
{

}
于 2013-11-07T15:09:31.617 回答
3

您需要转发声明 B,否则如果在 A 之后侦听,编译器将不知道 B 存在。

class B;

class A
{
    protected :
        B *pB;
}

class A : public B
{

}
于 2013-11-07T15:09:38.470 回答
1

前向声明class B应该是class B: public A,而不是相反。IE

class B;
class A
{
  protected:
    B *pB;
}

class B: public A
{

}
于 2013-11-07T16:01:49.053 回答