C++总结

C++

分析的角度(static/const/&/define/typedef/extern/valotile/模板)
在内存的位置:静态区、常量区、堆区、栈区、不占内存(引用、声明)
作用域:局部、全局、当前文件、属于类
生命周期
是否可修改:常量指针、指针常量、常引用
数据类型检查
针对不同对象:局部变量、全局变量、函数、类成员属性、类成员方法、指针、数组
编译:预编译

特性
封装
继承
静态属性属于类,怎么继承?
菱形继承:虚继承
多态
一个接口多个状态。
静态多态:重载、模板(编译时确定调哪个方法)
动态多态:虚函数(运行时确定调哪个方法)
子类对象赋值给父类指针。
1.发生截断只能调用父类的属性和方法。
2.怎么调用子类的方法?用虚函数,生成虚函数表,子类的函数指针会覆盖父类的函数指针。这样根据虚函数表指针找到虚函数表,再从表里找到函数指针。
3.析构时会调用父类的析构函数,而不是子类的析构函数,发生泄漏。用虚析构函数。
运行时类型识别:typeid()
父类转子类:强转、dynamic_cast

C++11特性
auto、nullptr、枚举类、匿名函数
智能指针:共享指针share_ptr(引用计数),独占指针uniqued_ptr(移动语义)、weak_ptr(引用计数不改变)
智能锁:lock_guard(构造加锁、析构解锁)、uniqued_lock(中途加锁解锁)
类:继承构造、final、override、default、delete
右值引用&&:函数返回值避免复制构造
移动语义move:转移控制权
完美转发forware:左值转右值
异步:promise、get_future()、future、wait()、get()、async、launch(async、reference)

容器
vector、list、map、queue、unorded_map、set、stack
增删造成的迭代器失效

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值