定义一个circle类,属性为半径,周长和面积。要求定义构造函数和拷贝构造函数及其他成员函数,实现以下功能: 根据输入的半径构造一个对 能根据已知的对象生成一个的新对象,新对象的半径是个原对象半径的两倍 能获取对象属性值 输入 一个圆的半径 输出 先复制这个对象 输出复制后对象的半径,周长,面积(保留小数点后两位数) 样例输入 1 样例输出 2 12.56 12.56
时间: 2023-05-28 13:02:08 浏览: 44
#include <iostream>
#include <cmath>
using namespace std;
class Circle{
private:
double radius, perimeter, area;
public:
Circle(double r);
Circle(const Circle &c);
void setRadius(double r);
void setPerimeter();
void setArea();
double getRadius() const;
double getPerimeter() const;
double getArea() const;
};
Circle::Circle(double r){
radius = r;
setPerimeter();
setArea();
}
Circle::Circle(const Circle &c){
radius = 2 * c.radius;
perimeter = 2 * M_PI * radius;
area = M_PI * pow(radius, 2);
}
void Circle::setRadius(double r){
radius = r;
setPerimeter();
setArea();
}
void Circle::setPerimeter(){
perimeter = 2 * M_PI * radius;
}
void Circle::setArea(){
area = M_PI * pow(radius, 2);
}
double Circle::getRadius() const{
return radius;
}
double Circle::getPerimeter() const{
return perimeter;
}
double Circle::getArea() const{
return area;
}
int main(){
double r;
cin >> r;
Circle c1(r);
Circle c2(c1);
cout << c2.getRadius() << " ";
cout << fixed << showpoint << setprecision(2) << c2.getPerimeter() << " ";
cout << fixed << showpoint << setprecision(2) << c2.getArea() << endl;
return 0;
}