标题:类的继承与派生
只看楼主
天涯为客
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-8-27
结帖率:40%
已结贴  问题点数:10 回复次数:3 
类的继承与派生
定义一个Rectangle(长方形)类,它包含两个数据成员length和width;以及包含用于求长方形面积的成员函数。再定义Rectangle的派生类Rectangular(长方体),它包含一个新数据成员height和用来求长方体体积的成员函数。在main函数中,分别使用这两个类求某个长方形的面积和某个长方体的体积。
搜索更多相关主题的帖子: 长方形 长方体 继承 
2012-10-27 13:49
zxd543
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:内蒙古
等 级:贵宾
威 望:17
帖 子:453
专家分:2351
注 册:2012-4-12
得分:0 
用C++写还是用java写?

马马虎虎 不吝赐教 我是路过蹭分滴
2012-10-27 20:58
超级菜鸟手
Rank: 3Rank: 3
来 自:太阳系
等 级:论坛游侠
帖 子:34
专家分:109
注 册:2012-10-24
得分:5 
参考就好 要考自己写 才能学到C++ 的精髓啊

#include <iostream>
using namespace std;

class Rectangle {
      protected:
                int width, length;
      public:
                void setWidth(int w){
                     width = w;}
                void setLength(int l){
                     length = l;}
                int area () {return (width * length);}

};

class Rectangular:public Rectangle{
      int height;
      public:
             void setHeight(int h){
                  height = h;}
             int volume(){return (width * length * height);}
};
      

int main () {
  Rectangular rect;
  int w, l, h;
  
  cout<<"Enter width, length, height: ";
  cin>>w>>l>>h;
  rect.setWidth(w);
  rect.setLength(l);
  rect.setHeight(h);
  
  cout << rect.area()<<endl<<rect.volume()<<endl;
  
  system("PAUSE");
  return 0;
}
2012-10-27 22:40
小小小火柴
Rank: 5Rank: 5
来 自:江西赣州
等 级:职业侠客
威 望:3
帖 子:141
专家分:337
注 册:2012-9-28
得分:5 
  要自己写,给你个参考!这个是计算各类的面积和体积的代码!
#include<iostream>
#include<cmath>
using namespace std;
class shape
{
    public:
        shape(float x=0);
        virtual void input()=0;      //输入图形信息
        virtual void disp()=0;       //现实基本图形信息
        virtual float area()=0;      //计算表面积
        virtual void volum()=0;     //计算体积
    protected:
        float r;
};
class ball:public shape               //球体类
{
    public:
        virtual void input();
        virtual void disp();
        virtual float area();
        virtual void volum();
};
class squ:public shape               //正方体类
{
    public:
        virtual void input();
        virtual void disp();
        virtual float area();
        virtual void volum();
};
class rect:public shape              //长方体类
{
    public:
        virtual void input();
        virtual void disp();
        virtual float area();
        virtual void volum();
    private:
        float w,h;
};

class cyl:public shape                 //圆柱体类
{
    public:
        virtual void input();
        virtual void disp();
        virtual float area();
        virtual void volum();
    private:
        float h;
};
void ball::input()
{  
    cout<<"请输入球的半径:";
    cin>>r;
    system("pause");
    system("cls");
}
void ball::disp()
{
    cout<<"球的表面积为:";
    cout<<s;
    cout<<"球的体积为:";
    cout<<v;
    system("pause");
    system("cls");
}
float ball::area()
{
    float s;
    s=4*3.14*r*r;
    return (s);
    system("pause");
    system("cls");
}
float ball::volum()
{
    float v;
    v=4.0/3*3.14*r*r*r;
    return(v);
    system("pause");
    system("cls");
}
void squ::input()
{  
    cout<<"请输入正方体的边长:";
    cin>>r;
    system("pause");
    system("cls");
}
void squ::disp()
{
    cout<<"正方体的表面积为:";
    cout<<s;
    cout<<"正方体的体积为:";
    cout<<v;
    system("pause");
    system("cls");
}
float squ::area()
{
    float s;
    s=6*r*r;
    return (s);
    system("pause");
    system("cls");
}
float squ::volum()
{
    float v;
    v=r*r*r;
    return(v);
    system("pause");
    system("cls");
}
void rect::input()
{  
    cout<<"请输入长方体的长:";
    cin>>r;
    cout<<"请输入长方体的宽:";
    cin>>w;
    cout<<"请输入长方体的高:";
    cin>>h;
    system("pause");
    system("cls");
}
void ball::disp()
{
    cout<<"长方体的表面积为:";
    cout<<s;
    cout<<"长方体的体积为:";
    cout<<v;
    system("pause");
    system("cls");
}
float ball::area()
{
    float s;
    s=2*(r*w+r*h+w*h);
    return (s);
    system("pause");
    system("cls");
}
float ball::volum()
{
    float v;
    v=r*w*h;
    return(v);
    system("pause");
    system("cls");
}
void cyl::input()
{  
    cout<<"请输入圆柱体的底面半径:";
    cin>>r;
    cout<<"请输入圆柱体的高:";
    cin>>h;
    system("pause");
    system("cls");
}
void ball::disp()
{
    cout<<"圆柱体的表面积为:";
    cout<<s;
    cout<<"圆柱体的体积为:";
    cout<<v;
    system("pause");
    system("cls");
}
float ball::area()
{
    float s;
    s=2*r*3.14*h;
    return (s);
    system("pause");
    system("cls");
}
float ball::volum()
{
    float v;
    v=h*3.14*r*r;
    return(v);
    system("pause");
    system("cls");
}
static int i =0;  //全局静态变量
int main()
{
   ball a;
   squ b;
   rect c;
   cyl d;
   int i;
   for(;;)
   {
    cout<<"\t\t*********************************\n";
    cout<<"\t\t*****几何体的表面积与体积********\n";
    cout<<"\t\t*********************************\n";
    cout<<"1-----------输入各种形状信息:\n";
    cout<<"2-----------显示各种形状信息:\n";
    cout<<"3-----------计算各种形状的表面积:\n";
    cout<<"4-----------计算各种形状的体积:\n";
    cout<<"5-----------退出系统:\n";
    cout<<"\n\n请选择功能:";
    cin>>i;
    switch(i)
    {
    case 1:
        {    system("cls");
             a.input();
             b.input();
             c.input();
             d.input();
        }break;
    case 2:
        {    system("cls");
             a.disp();
             b.disp();
             c.disp();
             d.disp();
        }break;
    case 3:
        {    system("cls");
             a.area();
             b.area();
             c.area();
             d.area();
        }break;
    case 4:
        {    system("cls");
             a.volume();
             b.volume();
             c.volume();
             d.volume();
        }break;
    case 5:
        {
            return 0;
        }

    }
   }
  system("pause");
  return 0;
}

   好好学习!
2012-10-28 14:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-384644-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.144892 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved