对头文件依赖的新理解

前端之家收集整理的这篇文章主要介绍了对头文件依赖的新理解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今晚随手翻看了一下《Effective C++》,

突然对条款34: 将文件间的编译依赖性降至最低,比较感兴趣,于是又重看了一次。

对类型前向声明代替头文件引入适用的情景有了一个新的理解,

以前用的最多的是,适用指针或者引用,但文中还说到了返回值和参数都可以利用这一规则(以前觉得是不行的)。

于是网上google了一下,结果找到了《Google C++风格指南》里面关于头文件依赖的章节。

关于函数参数和返回值,文中特别强调了不能定义实现,也就是函数实现不要在h文件中。

特别是模板代码,由于必须在h文件中实现,也就不能利用前向声明的优点了。

我们再看看《Effective C++》里面是如何说的:

所以,根本原因就是分配内存大小的问题。

难怪《Effective C++》说了这样一句话:

问题发生的原因在于,在将接口从实现分离这方面,C++做得不是很出色。尤其是,C++的类定义中不仅包含接口规范,还有不少实现细节。

猜你在找的设计模式相关文章