题目
编写程序。编写一个关于圆形的C++程序。要求用定义一个圆形类Circle,其中包含如下成员:
- 1个私有数据成员(半径);
- 3个公有函数成员(设置半径、计算面积、计算周长);
- 3个构造函数(不带参数的构造函数、带参数的构造函数和拷贝构造函数)。
编写主函数main(),使用圆形类Circle创建圆形对象,要求:
- 定义一个圆对象c1,从键盘输入一个值x并将其设定为c1的半径,计算并显示c1的面积和周长;
- 再定义一个圆对象c2,并将半径初始化为2x,计算并显示c2的面积和周长;
- 再定义一个圆对象c3,并用c1初始化c3,计算并显示c3的面积和周长。
#include <iostream>
using namespace std;
class CTest
{
private: int x, y;
public:
CTest(int p1 = 0, int p2 = 0) { x = p1; y = p2; }
CTest(CTest &p) { x = p.x; y = p.y; }
void Show( ) { cout << x << “, “ << y << endl; }
};
int main( )
{
CTest obj1;
obj1.Show( );
CTest obj2(2, 5);
obj2.Show( );
CTest obj3(obj2);
obj3.Show( );
return 0;
}
答案
#include <iostream>
#define PI 3.1415926
class Circle
{
private:
double R;
public:
Circle() {R = 0;}
Circle(const double r) {R = r;}
Circle(const Circle &circle) {R = circle.R;}
void setR(const double r) {R = r;}
double getArea() const {return PI*R*R;}
double getPerimeter() const {return PI*2*R;}
};
int main()
{
Circle c1;
double r;
std::cin>> r;
c1.setR(r);
std::cout << "面积: " << c1.getArea()
<< " 周长: " << c1.getPerimeter() << std::endl;
Circle c2 = Circle(2*r);
std::cout << "面积: " << c2.getArea()
<< " 周长: " << c2.getPerimeter() << std::endl;
Circle c3 = Circle(c1);
std::cout << "面积: " << c3.getArea()
<< " 周长: " << c3.getPerimeter() << std::endl;
return 0;
}