读书频道 > 网站 > 网页设计 > 大规模C++程序设计
1.1.3 头文件(.h)
15-04-24    下载编辑
收藏    我要投稿   

本文所属图书 > 大规模C++程序设计

《大规模C++程序设计》由世界级软件开发大师John Lakos亲笔撰写,是C++程序设计领域最有影响力的著作之一。作者结合自己多年从事大规模C++项目的开发经验,详细介绍了大规模C++程序设计涉及的一系列概念、理论、立即去当当网订购

在C++中,将一个带有外部链接的定义放置在一个.h文件中往往属于编程错误。如果你这样做了,还把这个头文件包含在不止一个编译单元中,那么把它们链接在一起时将会出现如下的错误信息:


在C++中,在一个头文件的作用域内放置一个带有内部链接的定义,例如静态函数或者静态数据,是合法的。可是这种做法并不理想。这些文件作用域的定义不仅污染了全局名字空间,而且在有静态数据和函数的情况下,它们在每个包含头文件的编译单元中消耗数据空间。甚至数据在文件作用域内声明为const时也可能会引起同样的问题,如果这个常量的地址曾经被占用就更是如此。将(带有内部链接的)文件作用域常量和(带有外部链接的)静态常量类成员进行比较:在整个程序中只能有一个类作用域常量的复制。图1-3显示了一个头文件中应当包含什么,不应当包含什么。



重复的非成员数据定义的冗余不仅影响程序的规模,也影响运行性能,因为它困扰了主机的缓冲机制。

但是,我们偶尔也会有充足的理由在头文件的文件作用域中放置一个用户自定义对象的静态实例。特别是,这样一个对象的构造函数可以用来确保在使用前就初始化一个特定的公共部件(如iostream)。这种解决方案对于中小型系统来说是优美的,但是对于非常大型的系统可能是有问题的。我们将会在7.8.1.3小节继续论述这个问题。


点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站