关于C++头文件互引用和前向声明

来源:互联网 发布:矩阵行列式的计算公式 编辑:程序博客网 时间:2024/06/05 18:25

       使用C++的程序开发者(尤其是像我这样的新手开发者),都遇见C++的头文件的互包含的问题,最常见导致的错误是使用的类型没有定义。简单的究其原因,主要是互包含导致互相寻找,进入到类似的死循环中,幸好有头文件中的宏定义防止这种死循环。

       解决的办法有两种:

      1)尽量的减少类之间的耦合,杜绝出现这种问题的根源,有些废话,能杜绝还使用互包含干嘛!

      2)在头文件中前置声明需要的类型(参见C++primer的说法),在使用的CPP文件中引用头文件,也就是说尽量的不在头文件中引用头文件。

      这样确实能够解决以上的问题,但是也需要注意使用类型前置声明规则,主要有一下的规则:不完全的前置声明类型只能用于声明指向该类型的指针或者引用(因为指针和引用地址的大小和具体的类没有关系),也可以使用之声明(不是定义函数,这也就是有些要求函数必须要在CPP中定义,考虑到了这方面的规则)函数,作为参数或者返回值。

     由于使用到了前置声明,只能有这么多的了解,有理解不正确的地方欢迎指正交流,将感激不尽。


原创粉丝点击