c++<9章> 内存模型与名称空间
2016-12-23 21:10
260 查看
一、工程中文件内容的摆放
如果将函数的定义,结构的定义,类的定义,以及main函数都放在一个cpp文件里的话,不仅看起来一团乱嘛,而且对于后期的维护也相当的棘手,出于上述问题的考虑需要合理布局,一般布局如下:在头文件里放置函数原型,结构,(不包括类中具体的函数定义)类的声明,模板声明,内联函数,在一个文件cPP里放置功能函数的的定义。
问:为什么类的定义和结构的定义不能单独放在cPP里共其他文件使用?
答:因为在编译时每个文件是独立编译的,如果结构和类的定义在其他文件里时,那么当前文件编译时就无法根据其对象大小为其分配内存,但是函数可以,因为函数的原型里已经说明了要返回的类型,所以可以为其分配内存(类在其他文件定义时,可以在当前文件定义类指针也说明了同样的道理)。
问:为什么不宜将函数定义搁在头文件中?
答:因为加入该文件被两个cPP文件同时包含,则就出现同一个程序中一个函数二次定义(内联函数除外),进而报错。
问:声明和原型可以重复两次吗?
答:没错,重复100次也没人管,在链接是不回报错,但是定义就肯定会报错,所以头文件中不能放置函数定义或者是类的函数定义,顺便复习一下#ifndef A_H #define A_H的使用意义,一般是将头文件这样处理,假如a.h被这样处理了,则另一个头文件b,h包括了他,在某个cPP文件中同时包含了a.h和b.h,那么这样的好处是可以减轻编译的工作量,对于人来说没啥用,因为语法都是正确的,因为重复申明无措,但是要养成#ifnde的好习惯,因为有的头文件里会定义全局变量,这样这个习惯会有帮助。
相关文章推荐
- C++学习笔记(第9章->内存模型和名称空间)
- C++PrimerPlus第九章学习笔记——内存模型和名称空间
- C++学习(十)内存模型和名称空间
- 【读书笔记:C++ primer plus 第六版 中文版】第9章 内存模型和名称空间
- 【C++ Primer plus】【第九章】内存模型和名称空间
- C++学习笔记3:内存模型和名称空间
- C++ Primer Plus-------内存模型与名称空间
- C++ PP Chapter IX 内存模型和名称空间
- C++ 内存模型和名称空间
- C++内存模型和名称空间
- 【学习笔记】C++primer plus 9.内存模型与名称空间
- C++内存模型与名称空间(存储持续性、作用域、链接性、动态内存分配、命名空间)
- C++ Primer plus 学习笔记之第九章内存模型和名称空间(1)
- C++ Primer Plus学习:第九章 内存模型和名称空间(1)
- C++ Primer Plus学习:第九章 内存模型和名称空间(2)
- C++内存模型和名称空间
- 【C++】第9章 内存模型和名称空间 知识点总结
- 《C++ Primer Plus》第9章 内存模型和名称空间 学习笔记
- C++ Primer Plus 第9章 内存模型和名称空间
- C++学习笔记六——内存模型和名称空间、关键字