Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2348963
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:09:14

应用派生类和虚函数设计一个面向对象程序:
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) |
给主人留下些什么吧!~~