explicit: (本意:清晰的,明确的)
- 作用:在C++类的构造函数(单参数)中声明,用来阻止隐式调用,如IntCell t1=32;
- 用法:在构造函数前声明即可.
访问函数和修改函数:
- 一般默认为修改函数,在函数结尾圆括号加上const表示一个访问函数,它不改变数据成员的值.
指针比较和赋值,是基于指向的地址.
关于函数传参:
- 按值传递:适合不被函数更改的小对象
- 常量引用传递:适合不被函数更改的大对象 eg:const vector &test
- 引址调用:适合所有可被函数更改的对象. 用&.
waing: 尽量少用引址返回,会导致很多隐藏的错误!
LACK 引用变量必须初始化??
析构函数的必要:
- 如果类的成员含有指针,或有new过的变量,则必须在析构函数中释放.
复制构造函数和’=’重载:
- 复制构造函数在初始化一个变量时调用,如果定义一个变量等于一个已存在的变量,则调用复制函数
以及’=’. LACK 为什么会调用’=’??且Test test3(test2);也会这样. - 两个已存在变量的赋值,只会调用’=’!!!
- 如果成员有指针,则必须写这两个函数,否则是浅复制,只复制指针的值,需要深复制.
在new堆中声明一个数组: area *one=new area[100];
注意: 删除时时: delete []one; //不是delete one[]; 为何,