1.assert()
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行。
原型定义:
#include <assert.h>
void assert( int expression );
assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
2. 模板定义中,关键字class不表示一个类,只是定义一个类型,typename和class有相同用法
3. 构造函数后面加冒号:
单冒号(:)的作用是表示后面是初始化列表,一般有三种使用场景。
(1)对父类进行初始化:调用格式为“子类构造函数 : 父类构造函数”
(2)对类成员进行初始化:调用格式为“构造函数 : A(初始值),B(初始值),C(初始值)……”
(3)对类的const成员变量进行初始化:由于const成员变量的值无法在构造函数内部初始化,因此只能在变量定义时赋值或使用初始化列表赋值。
对于2、3中的应用场景,有以下两点说明:
a、构造函数列表初始化执行顺序与成员变量在类中声明顺序相同,与初始化列表中语句书写先后无关。
b、相对于在构造函数中赋值,初始化列表执行效率更高。