码迷,mamicode.com
首页 >  
搜索关键字:虚函数    ( 1942个结果
第13周 《C++语言基础》程序阅读——多态性与抽象类 (3)
1、阅读下面的程序,并写出运行结果 (3)纯虚函数 #include using namespace std; class Base { public: virtual void Who() =0; }; class FirstDerived:public Base { public: void Who() { cout<<"F"; } }; cl...
分类:编程语言   时间:2015-05-27 10:04:38    阅读次数:116
C++虚函数与多态性
多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。虚函数是在基类中被声明为virtual,并在派生类中重新定义的成员函数,可实现成员函数的动态覆盖(Override)。包含纯虚函数的类称为抽...
分类:编程语言   时间:2015-05-27 00:40:45    阅读次数:226
虚函数(转载)
虚函数(转载)一般继承(无虚函数覆盖)下面,再让我们来看看继承时的虚函数表是什么样的。假设有如下所示的一个继承关系:请注意,在这个继承关系中,子类没有重载任何父类的函数。那么,在派生类的实例中,其虚函数表如下所示:对于实例:Derive d; 的虚函数表如下:我们可以看到下面几点:1)虚函数按照其声...
分类:其他好文   时间:2015-05-26 20:25:02    阅读次数:100
条款7:为多态基类声明virtual析构函数
C++明确指出:当派生类对象是由一个基类指针释放的,而基类中的析构函数不是虚函数,那么结果是未定义的。其实我们执行时其结果就是:只调用最上层基类的析构函数,派生类及其中间基类的析构函数得不到调用。 1 #include 2 3 using namespace std; 4 5 class Ti...
分类:其他好文   时间:2015-05-24 17:01:51    阅读次数:126
条款37:绝不重新定义继承而来的缺省参数
在继承中,分为两类函数:virtual和non-virtual。而重新定义一个非虚函数是不好的(条款36),那么以下的讨论就是如何定义继承而来的虚函数。强调:虚函数是动态绑定的,而缺省参数值是静态绑定的。 1 #include 2 3 class Shape 4 { 5 public: 6 ...
分类:其他好文   时间:2015-05-24 12:54:55    阅读次数:195
条款36:绝不重新定义继承而来的非虚函数
1 #include 2 3 using namespace std; 4 5 class Base 6 { 7 public: 8 void mf(); 9 };10 void Base::mf()11 {12 cout mf(); // 调用Base:...
分类:其他好文   时间:2015-05-24 11:23:12    阅读次数:74
条款33:避免隐藏继承而来的名称
? 此例中混合了纯虚函数、虚函数、非虚函数等,只是为了强调隐藏的是继承而来的名字,至于名字代表的是什么并不重要,即使enum、nested class、typedef也不例外。 1 #include 2 3 using namespace std; 4 5 class Base 6 { 7 p...
分类:其他好文   时间:2015-05-24 10:08:43    阅读次数:102
C++ 虚函数、静态联编和动态联编、抽象类
?? //C++ 虚函数、静态联编和动态联编、抽象类 #include #include using namespace std; class People { private:     string name;     int age; public:     People(string name_, int age_):name(name_), age(age_){} ...
分类:编程语言   时间:2015-05-23 11:30:29    阅读次数:165
C++ 虚函数经典深入解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。 当然...
分类:编程语言   时间:2015-05-22 13:32:26    阅读次数:205
绝不要在构造函数和析构过程中调用virtual函数
下面是一个用来塑模股市交易的类: derived的类的构造函数被调用,但是首先得调用基类Transaction的构造函数,但是在后面还得调用virrual函数,这个时候子类的对象的构造还没有完成,那么虚函数也就没有意思,也就可以说虚函数现在还不是虚函数,在derived class对象构造期间,对象...
分类:其他好文   时间:2015-05-22 13:01:45    阅读次数:134
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!