c++类
特别的构造函数
默认参数:
几乎所有函数都可以使用默认参数,但在构造函数中最为普遍
初始化列表
用来直接初始化数据成员;与列表顺序无关,与成员申明顺序有关;如果一个成员是const的,那么,该数据成员必需在初始化列表里进行初始化;
explicit构造函数
所有单参数的构造函数都必需是explicit的;以避免后台类型转换;
例如:
class A
{
A(int x = 0){}
~()A{}
}
A a;
a = 12;
由于c++拥有宽松规则,这将导制的结果会是,后台产生一个隐式类型转换;
A temp = 12;
a = temp;
explicit A(int x = 0){} explicit 关键字意味着不能使用隐式类型转换;从而使编译器正确解析以上语句
成员函数
在c++中,每一个成员函数都会被标记为访问函数或是修改函数;默认情况下所有的成员函数都是修改函数;只有在成员函数圆括号结尾加入的函数才是访问函数;
参数的传递
- 如果形参必需改变实参的值,那么必需是引址调用
- 如果参数类型是简单类型,使用按值传递;
- 参数类形是类类型一般按常量引用来传递;
- 按值传递实用于不被函数更改的小对象
- 常量引用调用适用于不被函数更改的大对象
- 引址引用适用所有可以被函数更改的对象