1、基本形式:
virtual ReturnType Function_1(); //虚函数声明
virtual ReturnType Function_2() = 0; //纯虚函数声明
先讲示例吧,再总结结论。
2、示例:
class Animail{
public:
void Function_1() {cout
};
clas...
分类:
其他好文 时间:
2015-03-06 11:21:31
阅读次数:
108
学习了虚基类,立马就会想到虚函数,虚基类有个虚基类表与之对应,才使其发挥了不一般的作用,当然虚函数也有一个不函数表,其原理如下所示:1.如果虚函数在基类与派生类中出现,仅仅是名字相同,而形式参数不同,或者是返回类型不同,那么即使加上了virtual关键字,也是不会进行滞后联编的。2.只有类的成员函数...
分类:
编程语言 时间:
2015-03-04 18:56:21
阅读次数:
139
在C++中通过虚函数,模板编程和RTTI技术可以实现多态。关于虚函数和模板编程不再赘述,下面来介绍RTTI技术。
所谓RTTI技术,是Run Time Type Infomation的缩写,即运行时类型信息。它提供了运行时确定对象类型的方法。对于大多数人而言,可能都不知道在C++中还有RTTI。其实在C++编程中有时候不可避免地需要对对象类型进行动态判断,那么如何确定对象的动态类型呢? 答...
分类:
其他好文 时间:
2015-03-03 23:45:14
阅读次数:
173
今天,我来讲一种在C++编程中实现多态的机制,叫做虚函数。对于多态来说,实际上就是用父类型的指针指向子类的实例,然后通过父类的指针调用子类的成员函数,这种技术使得父类型的指针有多种形态,这是一种常见的泛型技术,除虚函数外,还有模板技术,RTTI技术也属于泛型技术。
为了清楚地理解多态,先看下面这段代码。
#include
using namespace std;
class...
分类:
编程语言 时间:
2015-03-03 20:41:44
阅读次数:
198
谈谈关于构造函数中调用虚函数的情况,仅讨论单继承,不考虑虚拟继承和多重继承。
测试平台:VS2013 + Win7X64
一个例子:
#include
#include
class Base
{
private:
int __data;
public:
Base()
{
this->Func();
}
public:
virtual void Func()
{
printf...
分类:
编程语言 时间:
2015-03-02 14:54:23
阅读次数:
173
昨天笔试的时候碰到一个很有意思的题目,大体如下:classParent
{
public:
Parent()
{
doit();
}
~Parent()
{
doit();
}
virtualvoiddoit()
{
cout<<"I‘mParent!"<<endl;
}
};
classChild:publicParent
{
public:
Child()
{
}
~Child()
{
}
voiddoit()
{
Parent::d..
分类:
其他好文 时间:
2015-03-02 11:26:45
阅读次数:
142
public继承的概念,由2部分构成:函数接口(function Interface)继承和函数实现(function implementation)继承。这两种继承的差异有点像函数的声明和函数的定义之间的差异。在基类中,函数分为三种:
pure virtual函数只具体指定接口继承。impure virtual函数具体指定接口继承和缺省实现继承。 non-virtual函数具体指定接口继承和强制性实现继...
分类:
编程语言 时间:
2015-02-27 00:21:42
阅读次数:
146
程序接收键盘输入并作出相应的反馈是一个非常常见的功能,在MFC中提供了WM_KEYDOWN,WM_KEYUP这些消息来反便我们进行编程,但是这是在窗体没有其他控件的情况下才适用的。当有其他控件时,其他控件(其实也是窗体)肯定会有一个获得焦点使得这些消息失效,我们可以通过重载对话框程序的PreTranslateMessage(MSG*
pMsg)虚函数来实现这一功能。
首先在对话框...
分类:
编程语言 时间:
2015-02-26 06:31:55
阅读次数:
380
C++拾遗--虚函数原理
前言
C++的多态依赖虚函数来实现。若类存在虚函数,则每一个类的实例都维护了一个地址,这个地址指向虚函数表。虚函数表中存放的是类中所有虚函数的地址。下面我们找出虚函数表的地址,从而获得每个虚函数的地址,然后使用地址直接调用虚函数。
正文
1.空类的size...
分类:
编程语言 时间:
2015-02-25 18:36:58
阅读次数:
167