| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2989 人关注过本帖
标题:求助大神,在已有的Point类的基础上,定义一个“Circle”派生类,要求:新增 ...
只看楼主 加入收藏
正气
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-5-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
求助大神,在已有的Point类的基础上,定义一个“Circle”派生类,要求:新增一个半径成员;能计算并输出圆的周长及加圆面积
在已有的Point类的基础上,定义一个“Circle”派生类,要求:新增一个半径成员;能计算并输出圆的周长及加圆面积,用C++怎么写,我会写Circle类的可是不知道怎么使用继承
搜索更多相关主题的帖子: 圆的周长 圆面积 
2017-05-30 21:00
正气
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-5-30
收藏
得分:0 
#include<iostream.h>
#define PI 3.14159
class Circle
{
private:
float radius,girth,area;
public:
Circle(float r=0);
Circle(Circle &c);
void input();//输入半径
void jisuan();//计算周长、面积
void output();//输出半径、周长和面积
};
Circle::Circle(float r)
{
radius=r;
}
Circle::Circle(Circle &c)
{
radius=c.radius;
}
void Circle::input()
{
cout<<"输入圆的半径:";
cin>>radius;
}
void Circle::jisuan()
{
    girth=2*PI*radius;
    area=PI*radius*radius;
}
void Circle::output()
{
cout<<"圆的半径:"<<radius<<endl;
cout<<"圆的周长:"<<girth<<endl;
cout<<"圆的面积:"<<area<<endl;
}
void main()
{
   Circle  c1;
   Circle c2(c1);
   c1.input();
   c1.jisuan();
   c1.output();
   c2.input();
   c2.jisuan();
   c2.output();
 
}
2017-05-30 21:28
正气
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-5-30
收藏
得分:0 
希望大神能给出完整的改进答案
2017-05-30 21:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:14 
在已有的Point类的基础上
你的代码中没找到Point类呀!

程序代码:
struct Point
{
    double x, y;

    Point() : x(), y()
    {
    }
    Point( double x, double y ) : x(x), y(y)
    {
    }
};

#ifndef M_PI
#define M_PI  3.14159265358979323846
#endif

struct Circle : protected Point
{
public:
    Circle() : Point(), radius()
    {
    }
    Circle( double x, double y, double r ) : Point(x,y), radius(r)
    {
    }
    double perimeter() const
    {
        return M_PI*radius*2;
    }
    double area() const
    {
        return M_PI*radius*radius;
    }

protected:
    double radius;
};

#include <iostream>
using namespace std;

int main( void )
{
    Circle circle( 10, 10, 100 );
    cout << "perimeter = " << circle.perimeter() << '\n'
         << "area      = " << circle.area() << endl;
    return 0;
}

2017-05-31 08:20
快速回复:求助大神,在已有的Point类的基础上,定义一个“Circle”派生类,要求 ...
数据加载中...
 
   



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

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