应用派生类和虚函数设计一个面向对象程序:
1、定义一个抽象基类Fruit,它有二个数据成员name、price,代表水果的名称和价格,定义一个打印水果名称和价格的纯虚函数Show()。
2、从Fruit类公有派生一个苹果类Apple,定义一个代表品种的数据成员type,定义并实现一个有三个参数的构造函数Apple(char *n,double p,int t),实现其打印苹果名称和价格的纯虚函数Show()。
3、从Fruit类公有派生一个葡萄类Grape,定义一个代表色的数据成员,定义并实现一个有三个参数的构造函数Grape(char *n,double p,int c),实现其打印葡萄名称和价格的纯虚函数Show()。
4、在函数之前定义并实现一个全局函数Disp,它有一个Fruit的引用作为参数。在main函数中,定义一个Apple的对象和一个Grape对象,调用Disp函数实现虚函数的多态性,打印出相应水果的名称和价格。
--------------------next---------------------
#include
using namespace std;
class Three3d
{
public:
float x;
float y;
float z;
Three3d(float a,float b,float c);
friend Three3d operator+(Three3d left, Three3d right);
friend Three3d operator-(Three3d left,Three3d right);
void show();
};
Three3d operator+(Three3d left,Three3d right)
{
return Three3d(left.x+right.x,left.y+right.y,left.z+right.z);
}
Three3d operator-(Three3d left,Three3d right)
{
return Three3d(left.x-right.x,left.y-right.y,left.z-right.z);
}
inline Three3d::Three3d(float a,float b,float c)
{
x=a;
y=b;
z=c;
}
void Three3d::show()
{
cout<<"the new Three3d.x="< cout<<"the new Three3d.y="< cout<<"the new Three3d.z="<}
int main()
{
Three3d t1(50,20,10);
Three3d t2(10,10,5);
Three3d t3=t1+t2;
Three3d t4=t1-t2;
t3.show();
t4.show();
system("pause");
}
--------------------next---------------------
阅读(1420) | 评论(0) | 转发(0) |