对头文件依赖的新理解

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

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

 

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

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

 

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

 

 

 

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

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

 

 

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

 

 

 

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

 

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值