#include <iostream>
using namespace std;
class Parent
{
public:
virtual void func()
{
cout << "Parent::func()..." << endl;
}
virtual void func(int a)
{
cout << "Parent::func(int)..." << endl;
}
private:
int a;
};
class Parent2
{
public:
void func()
{
cout << "Parent2::func()..." << endl;
}
private:
int a;
};
int main()
{
Parent p1;
Parent2 p2;
cout << "sizeof(p1) = " << sizeof(p1) << endl;
cout << "sizeof(p2) = " << sizeof(p2) << endl;
return 0;
}
32位编译器运行结果
sizeof(p1) = 8
sizeof(p2) =4
64位编译器运行结果
sizeof(p1) = 16
sizeof(p2) = 4
VPTR指针顺序初始化,从父类到子类依次完成,构造函数中调用的都是本类中函数
#include <iostream>
using namespace std;
class Parent
{
public:
Parent(int a)
{