概述
2016年3月22日 第四周 星期二 阴
《EFFECTIVE C++》
第140页
条款31:将文件间的编译依存关系降至最低。
C++并没有把“将接口从实现中分离”这事做得很好。
编译依存关系:compilation dependency。
连串编译依存关系:cascading compilation dependencies。
================================================================================
为什么C++坚持将class的实现细目置于class定义式中?
namespace std{
class string; //前置声明(不正确)
}
这种前置声明不正确,string不是个class,它是个typedef(basic_string),正确的前置声明比较复杂,因为涉及额外的templates。
关于“前置声明每一件东西”的第二个困难是,编译器必须在编译期间知道对象的大小。
int main()
{
int x;
Person p(params);
}
编译器永远知道一个int占用的内存,那么编译器如何确定Person对象占用的内存呢?
唯一的办法就是询问class定义式。
假如class定义式可以合法地不列出实现细目,编译器又该如何确认呢?
3月22日完。
最后
以上就是从容鸡翅为你收集整理的将文件间的编译依存关系降至最低的全部内容,希望文章能够帮你解决将文件间的编译依存关系降至最低所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复