提示报错:"class”类型重定义
原因1:include 头文件重复加载
原因2:两个类相互include
解决:
1.include 头文件重复加载
在include之前添加
1 | #pragma once |
意思是只include一次就可以了。
原因2:两个类相互include
系统那些头文件,无论怎么include都没事,因为一般都用了宏定义,防止重复。
在头文件最上方写:
#ifndef AA (一个名字,尽量做到唯一)
#define AA(跟上边的名字一样)
文件最后写:
#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; }