C++虚函数表所占的大小?
在C++中,虚函数表指针的大小和虚函数表的大小都与具体实现相关。在一般情况下,虚函数表指针的大小为4(32位)或者8(64位)个字节,虚函数表的大小取决于类中虚函数的个数。
以下是一个C++虚函数表大小的具体例子:
#include <iostream>
using namespace std;
class Base {
public:
virtual void func1() { cout << "Base::func1()" << endl; }
virtual void func2() { cout << "Base::func2()" << endl; }
};
class Derived : public Base {
public:
virtual void func3() { cout << "Derived::func3()" << endl; }
};
int main() {
Derived d;
d.func1(); // calls Base::func1()
d.func2(); // calls Base::func2()
d.func3(); // calls Derived::func3()
return 0;
}
在这个例子中,Derived
类继承了Base
类,并且重写了其中两个虚函数。由于Derived
类中有三个虚函数,因此它也有自己的虚函数表,大小为三个指针(指向虚函数的地址)。在运行时,当调用d.func