在实现多态的时候三个步骤:
(1)必须有继承
(2)必须有virtual关键字
(3)有父类指针指向子类对象
其实在实现多态的时候,申明为虚函数是,编译器会自动生成一个虚函数表
当存在虚函数时,每个对象都有一个指向虚函数表的指针
下面我来测试一下它的存在:
#include <iostream>通过结果可以看出 打印的是8 4 8 刚好一个指针的长度。
using namespace std;
class A
{
public:
A(int a)
{
this->a = a;
}
virtual void run()
{
}
private:
int a;
};
class B
{
public:
B(int a)
{
this->a= a;
}
void run()
{
}
private:
int a;
};
class C
{
public:
C(int a)
{
this->a = a;
}
virtual void run()
{
}
private:
int a;
};
int main()
{
A a(1);
C c(2);
B b(3);
cout << sizeof(a) << endl;
cout << sizeof(b) << endl;
cout << sizeof(c) << endl;
return 0;
}
希望大家关注我,哪怕我还是一个菜鸟^*^ 谢谢~