标签:开发 之间 多重 技术 类型 str line members 内联
1. Object Based(基于对象) vs. Object Oriented(面向对象)
Object Based: 面对的是单一class的设计;
Object Oriented:面对的是多重classes的设计,class 和 class 之间的关系。
classes 的两个经典分类:
2. Header (头文件)
2.1 防卫式声明
2.2 把 complex 的实部和虚部写成模板类
2.3 inline
inline 关键字是对编译器的建议。建议把某个函数定义为内联函数。实际上,是否定义为内联函数,由编译器决定。
定义在类内的函数,都是 “提议” 为内联函数。
2.4 访问级别
所有数据成员都应该是private;
供外部使用的函数成员都应该是public,只供类内使用的函数成员可以是private;
2.5 构造函数
complex (double r = 0, double i = 0) : re (r), im (i) // initialization list(初值列,初始值) {}
complex (double r = 0, double i = 0) { re = r; im = i; }
上述是 2 种形式的构造函数,其结果都是对 re 和 im 进行赋值。但是,使用 initialization list 的代码效率更高,更彰显编程素养。
2.6 不需要析构函数
complex 类没有指针成员,因此不必使用析构函数。
2.7 构造函数可以有很多个 -- overloading
下图所示,由于构造函数 (1) 的形参全部具有默认值,所以重载函数 (2) 会造成调用混乱。
而 real() 函数,编译器根据其返回值类型,形参类型和数量,定义了一个独一无二的函数名称(右下角所示)。
2.8 构造函数为private权限
构造函数为private,即不允许外界创建对象。
举例子,一个设计模式,singleton,只允许该类创建一个对象。通过类内的静态函数创建对象。
标签:开发 之间 多重 技术 类型 str line members 内联
原文地址:https://www.cnblogs.com/gdut-gordon/p/12303279.html