先上一段代码帮助理解,由一个圆派生出一个球类,他们有一个公共的基类,这个基类是虚基类可以用virtual声明,只要有一个函数是虚函数,那么这个类就是抽象类。
cout<<“静态联编输出结果:”<<endl;
int main()
{
Globe globe(0,0,1);//这部分是随便初始化的三个实参
globe.shapeName();//输出名字globe
cout<<globe.getRadius()<<endl;
cout<<globe.area()<<endl;//对象名.成员函数,这是静态多态,目的输出面积
cout<<globe;
//测试5
//动态联编
cout<<“动态联编输出结果:”<<endl;
Shape *Glo;//Shape是抽象类,不能定义对象,里面只有虚函数,为后面的动态调用做伏笔
Glo=&globe;//将球类的对象地址赋给指针变量Glo,初始化为指向基类型的指针变量
Glo->shapeName();//动态输出
cout<getRadius()<<endl;
cout<area()<<endl;
cout<volume();
return 0;
}
看到这里,大家基本明白什么是动态多态和静态多态!
以上就是输出结果,中间涉及到<<字符的重载!