C++重要语法一图概括(复习用)

0.思维导图

1.传值返回和引用返回

1.1传值返回

传值返回所返回的是当前对象的拷⻉

1.2引用返回

引⽤返回返回的是对象本身,

返回对象是⼀个局部变量,出了作⽤域便会 被销毁,

所以不可使⽤引⽤返回

出了作⽤域,引⽤对象还在,才可以引⽤返回 所以说如果⼀个变量⽣命周期只在最⼩的⼀ 个作⽤域中,那么最好是传值返回

2.匿名对象

3.动态内存管理

new的底层大概是这样的:

operator new+malloc的封装+构造函数

operator delete +析构函数

4.模板

5.构造函数&析构函数&拷贝构造函数

构造函数和析构函数属于六⼤默认成员函数,在使⽤此类实例化⼀个对象时会并进⾏相关操作时会⾃动调⽤

六⼤默认成员函数:

C98:默认构造函数,拷⻉构造函数,析构函数,拷⻉赋值运算符

C11:移动构造函数,移动赋值运算符

//如果我们不写构造/析构函数(默认成员函数),编译器也会⾃动⽣成

//编译器会如何⽣成默认构造函数

//对于内置类型成员变量,编译器会给予它们内存中存在的任意值 //对于⾃定义类型成员变量,编译器会调⽤其✦默认构造函数✦

//默认构造函数=不传参就可以调⽤的函数(⽆参,全缺省,我们没写编译器⾃动⽣成的,三者仅可 存在⼀个)

6.拷贝构造函数

//如果没有管理资源,⼀般不⽤写拷⻉构造,默认⽣成的拷⻉构造就可以了,就不如上⾯的Date

//如果是⾃定义成员,内置类型成员没有指向资源,也类似默认⽣成的拷⻉构造(浅拷⻉)就可以

//⼀般情况下,不需要写析构函数同时也不要写拷⻉构造函数

//如果内部有相关管理资源的指针,需要显示写析构函数,通常需要显示写拷贝构造完成深拷⻉

7.拷贝赋值运算符

8.继承

//base类中protected成员在派⽣类中可访问,但不可在int main函数中直接访问

//base类中private成员在派⽣类中不可⻅

9.组合

组合就是⼀个类中有另外⼀个类

10.多态

不同的对象去做相同的事情得到不同的结果

多态条件 1.虚函数重写 2.base类指针或者引⽤调⽤函数

//析构函数是否建议设计成虚函数

//析构函数⼀定设计成析构函数,只有这样,派⽣类才可以构成 重写(针对不同类特殊化处理)

//派⽣类的重写函数可加virtual也可以不加

11.纯虚函数

12.仿函数

//ps:operator()只是仿函数的标志, ⽽真正的"仿函数名" 是"class Compare"中的"Compare"

13.右值引用

14.移动构造

ps:右值引用涉及移动构造

15.λ-calculus

16.包装器

17.异常

18.智能指针

 智能指针的作用:cpp中,凡是遇到动态资源管理,尽可能地交给智能指针
智能指针都在一个<memory>
总而言之就是构造函数保存指针资源,析构函数释放资源,以达到自动内存管理的作用
C++语法称其为RAII:资源获得立即初始化
通过对象的生命周期来保存资源

unique_ptr:禁止拷贝
shared_ptr/shared_array:引用计数的方式支持拷贝,
weaked_ptr:不同于上述指针,不支持直接管理资源 shared_ptr的循环引用会引起内存泄漏,配合此指针可以很好地解决此问题

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值