C++编译报错:does not name a type

在一个源文件中,要声明或定义一个类的指针时,必须在使用前声明或定义该类,因此下面的代码会报错:

class A
{
public:
    B *b;
};
class B{
public:    
	A *a;
};
int main()
{
    return 0;
}

报错为“error: ‘B’ does not name a type”,就是因为在A类中使用B *b之前没有声明或定义B类,如果在第一行加上一句前置声明“class B;”,就不会有这样的问题了。

你可能感兴趣的:(c++)