1.this指针
1)this无法被修改(因为被const修饰)
2)只能在“成员函数”的内部使用
3)this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参,所以对象中不存储this指针
4)this是形参,所以跟普通参数一样存在函数调用的栈区里面
5)this指针可为空
2.默认函数(共六种,这里只介绍几种常用的)
1)构造函数——相当于数据结构中的 Init()创造
A.无返回值
B.函数名与类名相同
C.可以重载
D.如果类中没有显式定义构造函数,则C++编译器会自动生成⼀个无参的默认构造函数,一旦用户显式定义编译器将不再生成
E.默认构造不仅仅是编译器默认生成的那个称作默认构造,总的来说,不传实参就可以调用的构造就叫默认构造
2)析构函数——相当于 destroy()销毁
A.析构函数是在类名前加一个“~”
B.一个类仅有一个析构函数,若不显示定义,系统会默认自动生成
C.无参数无返回值(声明也不需加void)
D.对象生命周期结束时,系统会自动调用析构函数
E.后定义的先析构
3)拷贝构造函数
A.拷贝构造函数是构造函数的一个重载
B.拷贝构造函数的参数只有一个且必须是类类型对象的引用,使用传值方式编译器会直接报错,因为语法逻辑上会引发无穷递归调用
C.自定义类型传值传参和传值返回都会调用拷贝构造完成
D.若不显示定义,系统会自动生成
E.系统默认生成的是浅拷贝——只会复制某个指向对象的指针,新旧对象共用同一内存
但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象