面向对象上10-13
10扩展补充:类模板,函数模板,及其他
静态static
静态的函数只能处理静态的数据
静态数据初始化方法
静态函数两种调用方法,没有对象也可以调用
Singleton
构造函数放在private,限制对象只有一个
优化Meyers Singleton
cout是ostream类型
模板template
template <typename T>
函数模板
template <class T>
namespace
将名字封装,using namespace将封装打开
更多细节
operator type() const类型转换重载
explicit构造函数
pointer-like object
function-like object
template specialization
Standard LibraryC++11等
variadic templete
move ctor
Rvalue reference
auto
lambda
range-base foe loop
unordered containers
11组合与继承
- 继承
- 复合composition
- 委托delegation
复合
拥有关系,容器Container拥有组件Component
构造由内而外
container的构造函数首先调用component的默认构造函数,再调用自己的
析构由外而内
委托
拥有关系,拥有的是指针
pimpl继承
三种继承方法,重点是public继承
所属关系
构造构内而外,子类首先调用父类默认构造函数,再调用子类构造函数
析构由外而内
父类的析构函数必须为虚函数virtual
12 虚函数与多态
虚函数
- 非虚函数non-virtual:不希望子类重新定义(覆写override)
- 虚函数virtual:希望子类重新定义
- 纯虚函数pure virtual:子类一定要重新定义,因为父类没有定义
继承+虚函数的设计模式Template Method
继承和复合,
委托和继承
以UI举例
13委托相关设计模式
composite模式,以file system为例
Prototype
未来的子类名称未知
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 C++学习笔记!