C++虚函数表原理

时间:2023-03-09 06:48:58
C++虚函数表原理

  C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指 向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图 使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。

  对C++了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。 这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地图一样,指明了实际所应该调用的函数。

  这里着重看一下这张虚函数表。C++的编译器应该是保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证取到虚函数表的有最高的性能——如果有多层继承或是多重继承的情况下)。 这意味着我们通过对象实例的地址得到这张虚函数表,然后就可以遍历其中函数指针,并调用相应的函数。

假设有这样的一个类:

class Base
{
public:
virtual void f() { cout << "Base::f" << endl; }
virtual void g() { cout << "Base::g" << endl; }
virtual void h() { cout << "Base::h" << endl; }
};

按照上面的说法,可以通过Base的实例来得到虚函数表。

typedef void(*Fun)(void); 

Base b;
Fun pFun = NULL; cout << "虚函数表地址:" << (int*)(&b) << endl;
cout << "虚函数表 — 第一个函数地址:" << (int*)*(int*)(&b) << endl; pFun = (Fun)*((int*)*(int*)(&b));
pFun();

实际运行经果如下:

虚函数表地址:0012FED4
虚函数表 — 第一个函数地址:0044F148

Base::f

  通过这个示例,可以看到,可以通过强行把&b转成int *,取得虚函数表的地址,然后,再次取址就可以得到第一个虚函数的地址了,也就是Base::f(),这在上面的程序中得到了验证(把int* 强制转成了函数指针)。通过这个示例,我们就可以知道如果要调用Base::g()和Base::h(),其代码如下:

(Fun)*((int*)*(int*)(&b)+);  // Base::f()
(Fun)*((int*)*(int*)(&b)+); // Base::g()
(Fun)*((int*)*(int*)(&b)+); // Base::h()

如图解释:

aaarticlea/png;base64,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*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" alt="" />

注意:在上面这个图中,我在虚函数表的最后多加了一个结点,这是虚函数表的结束结点,就像字符串的结束符“\0”一样, 其标志了虚函数表的结束。这个结束标志的值在不同的编译器下是不同的。在WinXP+VS2003下,这个值是NULL。而在Ubuntu 7.10 + Linux 2.6.22 + GCC 4.1.3下,这个值是如果1,表示还有下一个虚函数表,如果值是0,表示是最后一个虚函数表。

  下面,分别说明“无覆盖”和“有覆盖”时的虚函数表的样子。没有覆盖父类的虚函数是毫无意义的。我之所以要讲述没有覆盖的情况,主要目的是为了给一个对比。

一般继承(无虚函数覆盖)

  下面,再来看看继承时的虚函数表是什么样的。假设有如下所示的一个继承关系:

C++虚函数表原理

请注意,在这个继承关系中,子类没有重载任何父类的函数。那么,在派生类的实例中,其虚函数表如下所示:

对于实例:Derive d; 的虚函数表如下:

aaarticlea/png;base64,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" alt="" />

可以看到下面几点:

1)虚函数按照其声明顺序放于表中。

2)父类的虚函数在子类的虚函数前面。

一般继承(有虚函数覆盖)

  覆盖父类的虚函数是很显然的事情,不然,虚函数就变得毫无意义。如果子类中有虚函数重载了父类的虚函数,会是一个什么样子?假设,有下面这样的一个继承关系。

C++虚函数表原理

在这个类的设计中,只覆盖了父类的一个函数:f()。那么,对于派生类的实例,其虚函数表会是下面的一个样子:

aaarticlea/png;base64,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" alt="" />

从表中可以看到下面几点,

1)覆盖的f()函数被放到了虚表中原来父类虚函数的位置。

2)没有被覆盖的函数依旧。

这样,对于下面这样的程序:

Base *b = new Derive();
b->f();

由b所指的内存中的虚函数表的f()的位置已经被Derive::f()函数地址所取代,于是在实际调用发生时,是Derive::f()被调用了。这就实现了多态。

多重继承(无虚函数覆盖)

  下面,再来看看多重继承中的情况,假设有下面这样一个类的继承关系。注意:子类并没有覆盖父类的函数。

C++虚函数表原理

对于子类实例中的虚函数表,是下面这个样子:

aaarticlea/png;base64,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" alt="" />

可以看到:

1) 每个父类都有自己的虚表。

2) 子类的成员函数被放到了第一个父类的表中。(所谓的第一个父类是按照声明顺序来判断的)

这样做就是为了解决不同的父类类型的指针指向同一个子类实例,而能够调用到实际的函数。

多重继承(有虚函数覆盖)

  下面再来看看,如果发生虚函数覆盖的情况。下图中,在子类中覆盖了父类的f()函数。

C++虚函数表原理

下面是对于子类实例中的虚函数表的图:

aaarticlea/png;base64,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" alt="" />

可以看见,三个父类虚函数表中的f()的位置被替换成了子类的函数指针。这样,就可以任一静态类型的父类来指向子类,并调用子类的f()了。如:

Derive d;
Base1 *b1 = &d;
Base2 *b2 = &d;
Base3 *b3 = &d; b1->f(); //Derive::f()
b2->f(); //Derive::f()
b3->f(); //Derive::f() b1->g(); //Base1::g()
b2->g(); //Base2::g()
b3->g(); //Base3::g()

安全性

一、通过父类型的指针访问子类自己的虚函数

  子类没有重载父类的虚函数是一件毫无意义的事情。因为多态也是要基于函数重载的。虽然在上面的图中我们可以看到Base1的虚表中有Derive的虚函数,但我们根本不可能使用下面的语句来调用子类的自有虚函数:

Base1 *b1 = new Derive();
b1->f1(); //编译出错

任何妄图使用父类指针想调用子类中的未覆盖父类的成员函数的行为都会被编译器视为非法,所以,这样的程序根本无法编译通过。但在运行时,可以通过指针的方式访问虚函数表来达到违反C++语义的行为。

二、访问non-public的虚函数

  另外,如果父类的虚函数是private或是protected的,但这些非public的虚函数同样会存在于虚函数表中,所以,我们同样可以使用访问虚函数表的方式来访问这些non-public的虚函数,这是很容易做到的。

class Base
{
private:
virtual void f() { cout << "Base::f" << endl; } }; class Derive : public Base
{ }; typedef void(*Fun)(void); void main() {
Derive d;
Fun pFun = (Fun)*((int*)*(int*)(&d)+);
pFun();
}

可以在VC的IDE环境中的Debug状态下展开类的实例就可以看到虚函数表。

C++虚函数表原理

下面是一个关于多重继承的虚函数表访问的demo:

#include <iostream>
using namespace std; class Base1
{
public:
virtual void f() { cout << "Base1::f" << endl; }
virtual void g() { cout << "Base1::g" << endl; }
virtual void h() { cout << "Base1::h" << endl; } }; class Base2
{
public:
virtual void f() { cout << "Base2::f" << endl; }
virtual void g() { cout << "Base2::g" << endl; }
virtual void h() { cout << "Base2::h" << endl; }
}; class Base3
{
public:
virtual void f() { cout << "Base3::f" << endl; }
virtual void g() { cout << "Base3::g" << endl; }
virtual void h() { cout << "Base3::h" << endl; }
}; class Derive : public Base1, public Base2, public Base3
{
public:
virtual void f() { cout << "Derive::f" << endl; }
virtual void g1() { cout << "Derive::g1" << endl; }
}; typedef void(*Fun)(void); int main()
{
Fun pFun = NULL; Derive d;
int** pVtab = (int**)&d; pFun = (Fun)pVtab[][];
pFun(); pFun = (Fun)pVtab[][];
pFun(); pFun = (Fun)pVtab[][];
pFun(); //Derive's vtable
pFun = (Fun)pVtab[][];
pFun(); //The tail of the vtable
pFun = (Fun)pVtab[][];
cout<<pFun<<endl; //Base2's vtable
//pFun = (Fun)*((int*)*(int*)((int*)&d+1)+0);
pFun = (Fun)pVtab[][];
pFun(); pFun = (Fun)pVtab[][];
pFun(); pFun = (Fun)pVtab[][];
pFun(); //The tail of the vtable
pFun = (Fun)pVtab[][];
cout<<pFun<<endl; //Base3's vtable
pFun = (Fun)pVtab[][];
pFun(); pFun = (Fun)pVtab[][];
pFun(); pFun = (Fun)pVtab[][];
pFun(); //The tail of the vtable
pFun = (Fun)pVtab[][];
cout<<pFun<<endl;
return ;
}