c++<9章> 内存模型与名称空间
来源:互联网 发布:招商银行mac控件下载 编辑:程序博客网 时间:2024/05/15 07:40
一、工程中文件内容的摆放
如果将函数的定义,结构的定义,类的定义,以及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++Primer内存模型和名称空间
- 【C++】第9章 内存模型和名称空间 知识点总结
- 第9章——内存模型和名称空间
- 第九章 内存模型和名称空间
- 第九章 内存模型和名称空间
- 第九章 内存模型和名称空间
- 第九章:内存模型和名称空间
- 【学习笔记】C++primer plus 9.内存模型与名称空间
- 内存模型和名称空间
- 内存模型和名称空间
- 内存模型和名称空间
- 内存模型和名称空间
- C++ Primer Plus-------内存模型与名称空间
- C++PrimerPlus第九章学习笔记——内存模型和名称空间
- 【c++ primer】第九章 内存模型和名称空间
- 【C++ Primer plus】【第九章】内存模型和名称空间
- C++ primer plus 第9章 内存模型和名称空间
- listview布局创建
- Mybatis输入映射parameterType与输出映射ResultMap是Map类型的解决方案
- JavaWeb(二)Servlet编写
- Struts2 自定义类型转换器
- MultithreadedMapper的使用
- c++<9章> 内存模型与名称空间
- 【安卓】安卓App开发思路 一步一个脚印(十五)实现闪屏的优化
- Excel Sheet Column Title
- 空间域图像增强
- 链表反序
- vue入门实战教程 - 用vue高仿饿了吗APP
- PopupWindow其中的view获取焦点?
- POJ 3293 Rectilinear polygon 已翻译
- 爬楼梯