问题及代码:
#include<iostream>
using namespace std;
class my_base
{
int a,b;
public:
my_base(int x,int y)
{
a=x;
b=y;
}
virtual void show()
{
cout<<"base";
cout<<a<<" "<<b<<endl;
}
};
class my_class: public my_base
{
int c;
public:
my_class(int x,int y,int z):my_base(x,y)
{
c=z;
}
void show()
{
cout<<"my_class "<<"c="<<c;
}
};
int main()
{
my_base mb(50,50),*mp;
my_class mc(10,20,30);
mp=&mb;
mp->show();
mp=&mc;
mp->show();
return 0;
}
运行结果:
知识点总结:
virtual 虚拟函数:实现同一个函数名调用不同内容的函数;
此处用my_base 指针分别调用了 基类my_base和派生类my_class中的show()函数;
本文通过一个C++示例展示了如何使用虚函数实现多态。具体包括定义基类my_base和派生类my_class,以及如何通过基类指针调用不同类中的show()方法。
327

被折叠的 条评论
为什么被折叠?



