20201229-CPP-面向对象的CPP-未完

基本概念

  • 对象
  • 消息
  • 抽象,继承,封装,重载,多态

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++的空类中,默认会产生构造函数,复制构造函数,析构函数,赋值函数,取值运算

  • 构造可以重载
  • 析构不可以

虚函数

  • 析构不调用,就会有可能造成内存泄漏
  • 只有当一个类被用作为基类时,才会把析构函数写虚函数
  • 在执行顺序上,构造和析构过程相反,如果栈的使用一样
  • 如果复制完成后,两个对象指向同一部分的内存内容,即为浅复制,这一点,类似于传址;
  • 如果复制完成后,是一份新的内存数据,这就是深复制,这里就要注意,用完后释放内存,否则,内存就泄漏了,永远回收不了;

重载和覆盖

  • 重载方法名一样,但参数不一样,造参数区别
  • 返回值也可以不同

覆盖就是派生类实现基类的虚函数【接口与实现】

  • 只有虚方法和抽象方法才能覆盖
  • 同名
  • 同参
  • 同返回值

CPP核心技术:动态绑定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值