基本概念
- 类
- 对象
- 消息
- 抽象,继承,封装,重载,多态
struct和class的区别
- 结构只是实现数据封装,而类可以实现数据和对数据的操作的封装
- 类里面有更丰富的动作元素,继承,抽象函数,虚函数等
- 类可以进行访问级别控制,公有,保护,私有
- 结构建议使用malloc分类存,而类建议使用new分内存
C++中,默认产生的成员函数
- 默认构造函数
- 复制构造函数
- 析构函数
- 赋值函数
- 取值运算
class Empty
{
public:
Empty(); // 构造
Empty(const Empty &); // 构造
~Empty(); // 析构
Empty& operator=(const Empty&); // 取值运算符
Empty* operator&(); // 取址运算符
const Empty* operator&() const; // 取址运算符const
}
在c++的空类中,默认会产生构造函数,复制构造函数,析构函数,赋值函数,取值运算
- 构造可以重载
- 析构不可以
虚函数
- 析构不调用,就会有可能造成内存泄漏
- 只有当一个类被用作为基类时,才会把析构函数写虚函数
- 在执行顺序上,构造和析构过程相反,如果栈的使用一样
- 如果复制完成后,两个对象指向同一部分的内存内容,即为浅复制,这一点,类似于传址;
- 如果复制完成后,是一份新的内存数据,这就是深复制,这里就要注意,用完后释放内存,否则,内存就泄漏了,永远回收不了;
重载和覆盖
- 重载方法名一样,但参数不一样,造参数区别
- 返回值也可以不同
覆盖就是派生类实现基类的虚函数【接口与实现】
- 只有虚方法和抽象方法才能覆盖
- 同名
- 同参
- 同返回值