第一部分(基本规则)
来源:互联网 发布:小朋友齐打交mac下载 编辑:程序博客网 时间:2024/04/29 10:51
1、内部链接,外部链接
内部链接:只在本编译单元(.obj)能访问和使用的,反之,其它obj文件能访问到该变量或则该接口,那么就是外部链接了
比如
a.cpp中
void Test(){}
在b.cpp中看似访问不到Test,我们只需要在b.h中定义一个
void Test();
然后在b.cpp中就能够访问到了,链接的时候编译器会链接到a.cpp的Test函数的
能够申明为内部链接是最好的了
内部链接有哪些呢:全局静态变量,静态函数(上面的Test如果加上static在b.cpp中就访问不到了),枚举,union,内联函数
外部链接:类内部静态变量,类成员函数,全局变量,全局函数
extern 一个变量就表示从其它地方引入一个外部链接的符号了
2、逻辑设计
弱包含:B的接口中使用A,但是A不属于B的私有成员变量
强包含:B成员变量中包含了A。强包含又有hold和has。A的类型是指针,就是holds,是类型就是has了
3、设计的一些基本规则
3.1 类最小化,不要为了满足所有用户的需求去设计类。要满足大部分用户的重要接口
3.2 保持数据成员私有,这个没什么好说的了
防止全局名字冲突(3.3~3.4)
3.3 避免在文件作用域内包含带有外部链接的数据。包括全局变量,全局函数。
全局变量通过封装在struct中,提供接口,单件去改变
全局函数通过将各个函数放在class中,static的方式去访问
3.4 避免在h文件的文件作用域内使用枚举,typedef和常量数据
通过将枚举定义在struct或class内解决,常量数据通过定义在该struct的static变量解决
如果能定义在cpp中是更好了
3.5 头文件中的宏定义卫哨。另外冗余的包含卫哨可以减少头文件打开次数
3.5 命名规范,需要区分如下类型即可
使用一个一致的方法突出类数据成员
使用一个一致的方法区分类型名字(class,struct)
使用一个一致的方法区分枚举,常量和预处理器等不变的值
- 第一部分(基本规则)
- 第一部分 基本语言 第二章 变量和基本类型(2.3.4变量初始化规则)
- 第一部分 基本语言
- 第一部分 基本语法
- 第一部分.C++基本语法
- 第一部分 基本语言元素
- 部分基本的HTML语法规则
- 第一部分——基本语言
- 《C++ Primer》---第一部分:基本语言
- 【C++学习心得】第一部分:基本语言
- 第一部分 1.变量与基本类型
- Git-0.99 README 第一部分 基本对象
- Alien3D 第一部分 基本的調用代碼設計
- Hibernate注解开发(第一部分基本注解)
- 创造夺目UI的7条规则(第一部分)
- 第一部分Linux规则与安装中的笔记
- Bash 实例,第一部分 Bourne again shell (bash) 基本编程
- Web Services模式——第一部分:基本数据类型
- 递归+解析 SRM 593 Division Two - Level Two: WolfDelaymaster
- Opserver简单部署
- yum安装
- ERROR 1064 (HY000): ChildTable multi insert not provided
- Android 相对布局
- 第一部分(基本规则)
- POJ 4012
- C++ Primer :第十章 :泛型算法之再探迭代器以及其他算法
- Android输入框中加入清除按钮
- OC语法02
- try-catch和throw,throws的区别和联系
- Task Schedule(Hdu3572网络流)
- Windows编程零基础入门:1.1 Windows是什么?
- oc语法04