outline
- 基本概念
- 存放对象的数据结构:STL
- 资源管理
- 继承与派生
- 多态
- 面向对象设计模式
- c++编程练习
基本概念
1. c++之 I/O流
- 标准输入输出流:cin cout cerr
- 文件流:ifstream ofstream fstream 流的状态,打开文件的方式
- 字符串流:istringstream ostringstream stringstream
2. 内存的动态分配
- new
- delete
3. 友元
- 友元函数
- 友元类
4. 运算符重载
- 重载方式:普通函数,友元函数,成员函数
- 特殊的运算符重载:= () [] >> << -> ++ new/delete
5. 类型转换
- 四种方式
- explicit 关键字
6. 模板
- 类模板
- 函数模板
7. 右值引用实现移动语义
- 移动语义
- 完美转发
8. 返回值优化技术RVO
9. 写时复制技术COW
STL
- Container:
–sequence_container: vector deque list
–associative_container: map set multimap mulitset - Iterator
- Adapter: stack queue priority_queue
- Algorithm
- Functor
资源管理
- RAII类
- c++11中的智能指针:
– std::auto_ptr
– std::unique_ptr
– std::shared_ptr
– std::weak_ptr - 应用:锁资源管理,内存资源管理
继承与派生
- 访问控制:public private protected
- 继承关系
- 多基继承的二义性:多基二义性,拷贝二义性
- 不可继承:构造函数,析构函数,复制构造函数,复制运算符重载函数
- 隐藏与覆盖
- 派生类向基类的向上转型
多态
- 虚函数
- 虚指针与虚函数表
- 纯虚函数与抽象类
- 虚析构函数
- 虚基类,虚继承,虚基表
面向对象设计模式
- 软件开发过程:分析,设计,编码,测试,维护
- UML
- 类类关系:继承,关联,聚合,组合,依赖
- 面向对象VS基于对象
- 面向对象的设计原则:SOLID(五原则)
- 23种设计模式
c++编程练习
- string类的实现
- 封装MutexLock
- 封装cond
- 设计模式:只生成栈对象,只生成堆对象
- 设计模式:Pimpl
- string写时复制的实现
- 智能指针实现锁资源管理
- 封装Linux线程
- 封装生产者-消费者问题
- 封装线程池
- 封装socket
- 封装epoll模型的socket