C++基础记录(二)

构造函数个析构函数:
拷贝构造函数:
参数是放入一个对象。加入const ,表明在拷贝的时候不能修改原有对象的值。
拷贝构造函数不能匿名调用
使用场景:

  • 用已经创建的对象初始化新的对象
  • 以值传递的方式给函数参数传值

在这里插入图片描述
构造函数的调用:
在这里插入图片描述
在这里插入图片描述
隐式类型转换调用:
加粗样式
总结:
在这里插入图片描述
深拷贝和浅拷贝:
浅拷贝系统提供。
在这里插入图片描述
多次释放同一处内存会出现内存奔溃。
深拷贝:需要自己写拷贝构造函数
在这里插入图片描述
在这里插入图片描述
总结:
在这里插入图片描述
explicit关键字:防止隐式类型转

动态对象的创建new关键字

Person* p = new Person;

在这里插入图片描述
静态成员变量:

  • 在编译阶段就分配空间,对象还没创建,就已经分配空间。一个类所有对象共享。
  • 通过类名访问
  • 通过对象访问

静态成员函数:

  • 不能调用普通的成员变量
  • 可以访问静态成员变量

单例模式
一个类中只有对象
在这里插入图片描述
单例模式:
在这里插入图片描述

class ChairMan
{
	//构造函数私有化,拷贝构造函数私有化
private:
	ChairMan() 
	{
		cout << "创建国家主席" << endl;
	}
	ChairMan(const ChairMan& c) {}
public:
	//get方法
	static ChairMan * getInstance()
	{
		return singleMan;
	}
private:
	static ChairMan * singleMan;
	

};

ChairMan * ChairMan::singleMan = new ChairMan;

this指针:this指针指向被调用的成员函数所属的对象

  • 静态成员函数没有默认的this指针
  • 解决命名冲突

在这里插入图片描述
在这里插入图片描述
常函数与常对象:
在这里插入图片描述
在这里插入图片描述
符号重载:
+
在这里插入图片描述
类继承方式:
在这里插入图片描述
继承中构造函数和析构函数的调用:
在这里插入图片描述
查看类的结构:
在这里插入图片描述
子类与父类成员变量与成员函数同名时:
就近原则,调用父类的则加作用域
在这里插入图片描述
多继承:多继承容易出现二义性,出现二义性用作用域解决
在这里插入图片描述
菱形继承的解决方案:
采用虚继承 操作的是一份共享数据

多态原理:
在这里插入图片描述
在这里插入图片描述
抽象类

	//纯虚函数
	//有纯虚函数的类又叫抽象类,无法实例化对象
	//抽象类无法实例化对象
	virtual int getResult() = 0;

虚析构与纯虚析构:

虚析构解决的问题:

  • 当父类中有虚函数,则普通的析构函数不会调用子类的析构函数,需要把父类的析构函数改成虚析构
  • -通过父类指针指向子类对象释放时候不干净导致的问题。

纯虚析构:
在这里插入图片描述
向上转型和向下转型:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值