C++ 头文件与前置声明的使用

总结于博客:c++的类的前置声明,类的互相包含
对于复杂的类相互包含的情况:
1、头文件尽量写在.cc中,.h中能用前置声明就用前置声明。
2、头文件不能代替前置声明,如下图,对于类中有其他某个类的指针变量,包含头文件也没用,必须要有前置声明。
C++ 头文件与前置声明的使用前置声明也同样不能替代头文件。
前置声明的作用是指示“这个变量是个什么类型”,而不会告知“这个变量的具体定义”,因此,前置声明只对指针或引用类型的变量有效,凡是涉及到要知道某个变量大小以及内部成员的具体定义时,则需要通过头文件获取。
C++ 头文件与前置声明的使用
3、下面这种类的嵌套方式是不可取的,因为你中有我我中有你出现了死循环
C++ 头文件与前置声明的使用
正确的是下面两种方式:

1、其中一个类声明为指针。
C++ 头文件与前置声明的使用
2、类内部包含的类全都声明为指针:
C++ 头文件与前置声明的使用
其实上面把头文件去掉也没事。