回 帖 发 新 帖 刷新版面

主题:不知道哪错了,很奇怪

请问大家一个问题
Class A;
Class B
{
   public:
     A a;
};

class A
{
  
};

哪错了。

回复列表 (共3个回复)

沙发

A未定义,只有声明和空的类体。

板凳


哦,还有,如果要在一个类定义之前就引用类的变量,只能声明指针和引用类型的,像上面,可以用:

Class A;
Class B
{
   public:
     A *a;  //或者:A &a
};

class A
{
  
};


直接声明一个"A a"不行,因为静态对象要有一个类的全部信息,而引用或者指针在真正实例化时才需要,所以指针或者引用可以在类定义前声明变量。

3 楼

学习了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册