/*
1.有继承关系
2.并且子类重写了父类中的虚函数
多态:
父类指针或引用指向子类中的对象
重写:就是子类重写父类虚函数的返回值类型,函数名,函数参数完全相同
子类中是否加虚函数 virtual 可写可不写,但是父类中的virtual必须要加上
*/
#include <iostream>
using namespace std;
class Base
{
public:
virtual void speak()
{
cout<<"动物在说话"<<endl;
}
int m_A;
};
class Son:public Base
{
public:
void speak()
{
cout<<"小猫在说话"<<endl;
}
int m_A;
};
class Dog:public Base
{
public:
void speak()
{
cout<<"小狗在说话"<<endl;
}
};
void Dospeak(Base &p)
{
p.speak();
}
void test()
{
Son p1;
Dospeak(p1);
Dog p2;
Dospeak(p2);
}
int main()
{
test();
return 0;
}
C/c++动态多态
最新推荐文章于 2025-02-21 21:49:38 发布