“class”类型重定义 :
一般都是头文件重复include引起的。
防止头文件重复加载:
系统那些头文件,无论怎么include都没事,因为一般都用了宏定义,防止重复。
在头文件最上方写:
#ifndef XXXXXXX (一个名字,尽量做到唯一)
#define XXXXXXX (跟上边的名字一样)
文件最后写:
#endif
两个类之间互相引用:
A.H:
class A{
B* b;
}
B.H:
class B{
A* b;
}
就这样互相include后,肯定会出错。
需要在各自的声明前边,加上对方的声明,变成:
A.H:
class B;
class A{
B* b;
}
B.H:
class A;
class B{
A* b;
}