2020年5月18日 上午9:54
总结:
- 基类的设计思路:
- 需要先后站在两个角度:
- 为了用户角度:
- 我们作为基类,要提供给所有的所有用户基本的功能。继承类中可以添加新的功能,但是基本功能是必须保证的。
- 为了继承类的角度:
- 我们作为基类,需要为继承类提供哪些通用功能,这些功能时候所有继承类都很有可能用到的,我提供好了,你们这些基类就不用重复再写了。做到代码复用
- 为了用户角度:
- private :
- 我的理解来自与算法题,当我们写一道算法题的时候,我们常常需要把某个核心的子功能封装成一个private方法,这样做的原因是为了避免我们的代码写出来是一坨,让代码第一眼从结构和函数名上看上去更有逻辑,更容易让人看懂。
- virtual :在用户直接调用的方法中,找到哪些是可以让子类自定义的
- 需要先后站在两个角度:
- 强制转换的使用场景:
- 函数调用过程:
- GetSomeNews(string str)
- SetChange(string news) —— 发送者
- Notify(void* pArg) —— 传递者
- Update(void* pArg) ——— 传递者
- einterpret_cast<char*>(pArg) —— 接受者

- 函数调用过程:
附录:
main.cpp
1 |
|
Observer.h
1 |
|
Observerable.cpp
1 |
|
Observerable.h
1 |
|