面向对象——意图与逻辑(四)
来源:互联网 发布:火箭vs勇士数据 编辑:程序博客网 时间:2024/05/23 00:10
面向对象——意图与逻辑
面向对象——意图与逻辑 (二)
面向对象——意图与逻辑(三)
面向对象——意图与逻辑(四)
public
继承意味着is a
(狗是动物,苹果是水果,子类是父类)virtual
意味着接口必须被继承non-virtual
函数意味着接口和实现都必须被继承non-pure virtual
存在一个缺省算法(或者说父类要提供一个实现)pure virtual
则是完全客制化(customerization)override (重写),通俗地理解就是覆盖(新版本覆盖旧版本);
观察一个类,应首先观察其成员变量,因为大部分类最终表达的仍是一个具有很多成员方法的对象的抽象,也即它是对成员变量,以及围绕成员变量的成员方法的封装。
在多类的、类间关系较为复杂时,进行每个类单独的设计与实现时,脑海中应有一个 UML,它就是建筑实施中的图纸。
虚函数不能是静态函数
虚函数(vptr:virtual pointer、vtbl:virtual table)(也包括 this 指针)都是对象(class objects)的概念;
而 static 是全体对象,是类的概念范畴,静态函数没有 this 指针;
C++中的get、set方法
首先一点,是类的默认构造函数会分别调用类成员变量的默认构造函数。
class Test{private: std::vector<double> _weights;public: // 有点set方法的感觉 std::vector<double>& weights() { return _weights;} // 而这是get方法 const std::vector<double>& weights() const { return _weights;}}int main(int, char**){ Test t; // 会调用std::vector<double> 的默认构造函数,创建_weights对象实例 std::vector<double> dvec{0., 1., 2.}; t.weights() = dvec; // 在客户端创建,然后set return 0;}
如果这样理解还算正确的话,那么大量见诸于STL容器的两个版本的(mutable 和 non-mutable)的成员函数的作用便可显见。
Java/C++ 对多态的支持
Java 动态绑定,C++ 静态绑定(默认非多态),
这句话翻译过来即是:
父类引用指向子类对象,父类引用调用其子类中重写的方法时,Java默认多态,C++ 需显式的声明该方法为 virtual 虚函数。
0 0
- 面向对象——意图与逻辑(四)
- 面向对象——意图与逻辑
- 面向对象——意图与逻辑 (二)
- 面向对象——意图与逻辑(三)
- 面向对象——意图与逻辑(五)
- 程序设计——意图与逻辑 (二)
- 程序设计——意图与逻辑(二)
- 程序设计——意图与逻辑 (三)
- 程序设计——意图与逻辑
- 意图与逻辑——STL
- 意图与逻辑 —— Python
- 意图与逻辑 —— C 语言
- 意图与逻辑 (二)
- 意图与逻辑
- 面向对象(四)——继承
- Java基础—面向对象(四)
- 面向对象(四)
- 面向对象(四)
- csdn越来越卡了
- 十五个常用的jquery代码段
- iOS 抽奖转盘
- 3-5TeX中的引号
- 杨辉三角
- 面向对象——意图与逻辑(四)
- LinearLayout和Relative的属性与子属性的区别
- 多维数组第一课
- Java反射
- EventDispatcher事件分发机制
- 签到,打卡领取积分,记录连续签到,获取签到排名。
- LinearLayout和Relative的属性与子属性的区别
- 如何学习好汇编,同时也说下pascal读程序写结果的问题
- 数组(固定次数输入数据 排序)