在学习API,MFC时,看到了C++的重要性质。之前了解过封装,继承,多态,今天看完《深入浅出MFC》一书中的论述,对这三个概念有了更深的认识。为了防止自己忘记,写下这篇总结。
封装
- 面向对象,即“一切皆对象”。
- 把对象的属性描述出来,即对象的属性,“类”。
- 对象的属性有两大成员:属性(property)和方法(method);也可以称为成员变量(member variable)和成员函数(member function);
- 成员变量一般声明为private,成员函数一般声明为public。
继承与This指针
- 派生类继承基类,“暗自”拥有了基类的成员函数与成员变量(默认Public继承)
- 当以“基类的指针”指向“派生类的对象”时,经过这个指针,你只能调用由基类(不是派生类)定义的函数
- 不能用“派生类的指针”指向一个“基类对象”
- 当基类和派生类都定义了“相同名称的成员函数”,那么通过指针调用成员函数时,调用那个函数由指针的原始类型决定
虚函数与多态
- “基类的指针”要调用“派生类的成员函数“,virtual 虚函数 来实现
- 当所有派生类有同一特征(成员函数),可以通过虚函数,然后“基类指针”可通过循环调用所有
- 比如“基类:动物”,“派生类:小狗,小猫,小鸡,小鸭”,派生类都有特性(函数)“鸣叫”
- “鸣叫”的操作叫做,“一般化”操作。你可以利用虚函数,规划出一些一般化操作
- 当你期望给派生类添加新的成员函数时,在基类中加入该函数的纯虚函数:Virtual void dispaly() = 0;
- 以单一指令调用不同函数,这种性质叫做“多态”。
- 拥有纯虚函数的类叫做抽象类,不能产生对象实例,但可以有指针,用来操作派生类