1.类的介绍
面向对象的核心就是对象思想(消息传递)
类的定义(类的定义过程就是类的所有成员函数实现的过程)
public:在类之外可以直接访问
private: 在类之外不可访问
protected: 保护的访问权限 交给子(派生)类访问, 暂时不学
类的声明(只要类中有一个函数没有实现那就是类的声明)
类中的函数(方法)也可以在类外实现
但是如果,第一个函数和第三个函数在类外都实现了,但是第二个没有实现,就会编译报错
类的默认构造和默认析构
当然,这里面的打印语句是我自己加的,目的为了好让大家看到调用时机
但是有时默认的构造和析构函数不一定适合我们写的程序,因此我们需要自己写适合我们当前需要的构造和析构函数
自己写构造函数和析构函数
并且没有造成内存泄漏
拷贝构造
以上就是默认的拷贝构造,但是对于需要开辟空间的实体来说,这个默认也是不适合的,会出现内存问题。
为啥会出现这种问题呢???
答:
因为默认拷贝构造是浅拷贝,两个指向同一片地址区域,但是每一个对象都会调用一次析构函数,就会造成double free现象
所以就需要自己写拷贝构造函数了
图示:
this指针
1. 对象调用函数时,是如何找到自己本对象的数据成员的?this指针
2. 类中定义的成员函数存放在什么位置? 程序代码区
3. this指针代表的是当前对象
4. this指针在什么位置? 作为成员函数第一个隐含的参数
5. this指针的形式是什么? 类名 * const this 保护this不会被修改指向