1 多态产生的背景 希望同一个方法在派生类和基类中的行为是不同的,换句话来说,方法的行为取决于调用该方法的对象。 2 解决多态的两种方法 1)在派生类中重新定义基类的方法 2)使用虚方法 3 虚函数的定义 拥有 Virtual 关键字的函数称之为虚函数 ...
分类:
编程语言 时间:
2018-10-13 02:48:44
阅读次数:
131
C++中,通过类实现面向对象的编程,而在基类中只给出纯虚函数的声明,然后在派生类中实现纯虚函数的具体定义的方式实现接口,不同派生类实现接口的方式也不尽相同,从而实现多态。 我们需要遵循一些规则: ...
分类:
编程语言 时间:
2018-10-11 23:42:23
阅读次数:
195
继承体系中的作用域: 1.在继承体系中基类和派生类都有独立的作用域。 2.子类和父类中有同名成员、子类成员将屏蔽父类对成员的直接访问。(在子类成员函数中,可以使用基类:基类成员访问)-隐藏-重定义 3.注意在实际中在继承体系里面最好不要定义同名的成员。 注意事项: (1)当基类构造函数不带参数时, ...
分类:
其他好文 时间:
2018-10-11 01:41:48
阅读次数:
220
本文章需要的基础知识:继承,多态,工厂模式。 场景:可以任意加配料的咖啡,能输出咖啡名和价格。 原理:叠加,组合。 所有的咖啡都能输出咖啡名和价格,那么名字和价格设为虚函数应该没问题。即我们要有个抽象基类包含名字,价格这2个函数,那不就是water么!! water { virtual PrintD ...
分类:
其他好文 时间:
2018-10-09 00:48:25
阅读次数:
197
class Fruit { public: virtual void get_fruit() { std::cout<<"Fruit:getFruit"<<std::endl; } }; class Pear : public Fruit { public: virtual void get_fru... ...
分类:
其他好文 时间:
2018-10-08 20:42:20
阅读次数:
148
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚 ...
分类:
编程语言 时间:
2018-10-01 17:08:28
阅读次数:
159
纯虚函数 1.有纯虚函数的类,是抽象类。抽象类不可以被实例化。但是可以定义抽象类的指针。 2.当继承父类是抽象类的时候,子类必须全部覆盖父类的纯虚函数后,才可以被实例化。 ...
分类:
其他好文 时间:
2018-09-29 15:28:39
阅读次数:
195
学习参考: 1.Mooophy/Cpp-Primer. GitHub上star最多的一个答案,英文版,但是编程用到的单词也不多,查查就懂了。但是到第IV部分,很多题目的没有答案,或者不完整。 2.huangmingchuan/Cpp_Primer_Answers. 中文版的答案,和上一个答案差不多。 ...
分类:
编程语言 时间:
2018-09-27 10:32:51
阅读次数:
165
c++三大特性:封装、继承、多态。封装使代码模块化,继承扩展已存在的代码,多态的目的是为了接口重用。 多态: 多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说:允许将子类类型的指针赋值给父类类型的指针(一 ...
分类:
编程语言 时间:
2018-09-25 20:41:55
阅读次数:
174
1.C++ 多态 2. * c++ map 时间复杂度,如何实现 * map是红黑树实现的,查询复杂度为O(logn) * unordered_map是哈希表实现的,查询复杂度是O(1) * vector * 如何实现 * 如果插入n个数时间复杂度 * 4G内存能存多少vector 3. 虚函数的实 ...
分类:
编程语言 时间:
2018-09-24 23:15:50
阅读次数:
306