虚函数
1.一个类的虚函数表被该类的所有对象共享
验证如下
#include <iostream>
using namespace std;
class A
{
public:
virtual void func()
{
cout << "A virtual void func()" << endl;
}
int ia;
virtual ~A()
{ }
};
class B :public A
{
public:
virtual void func()
{
cout << "B virtual void func()" << endl;
}
int ib;
~B()
{ }
};
int main()
{
A a1, a2;
if (*(long*)(&a1) == *(long*)(&a2))
{
cout << "a1与a2共享虚表指针" << endl;
}
system("pause");
return 0;
}
运行结果图示:
2.派生类也有一份虚函数表,只不过这份虚函数表是从父类那里继承下来的。但是这份虚函数表是独立的只属于派生类所有
#include <iostream>
using namespace std;
//2.派生类也有一份虚函数表,只不过这份虚函数表是从父类那里继承下来的。但是这份虚函数表是独立的只属于派生类所有
class A
{
public:
virtual void func()
{
cout << "A virtual v