/*圆形游泳池周围建立一个圆形过道,并在四周围上栅栏。
栅栏价格为35每米,过道造价为20每平方米。
过道宽度为3米,泳池半径键盘输入,求输出过道和
栅栏的造价。*/
拷贝构造函数和析构函数
拷贝构造函数的定义:
类名(l类名 &类对象);
对数据成员一对一的复制,形参是这个类本身的引用
用类的一个对象初始化另一个对象时候;函数的形参为类的对象调用函数的时候;
函数的返回值是类对象的时候。以上三种情况都会调用复制构造函数
如果程序员没有声明复制构造函数,那么编译器就在必要的时候生成
一个隐含的复制构造函数。
析构函数:
~类名();只有一个,没有参数,没有返回类型。
完成对象被删除前执行一些清理工作。在生存期结束的时候系统自动调用他,
然后释放此对象的空间。
程序没有的时候就自动生成析构函数。
#include <iostream>
#include <cmath>
using namespace std;
const double pi(3.14159256);
class pool{
private:
double r;//半径
public:
//void setR(double rr );//设置半径
pool(double rr){r=rr;}
double getPeri();//求周长
double getArea();
};
/*void pool::setR(double rr){
r=rr;
}*/
double pool::getPeri(){
return 2*pi*r;
}
double pool::getArea(){
return pi*r*r;
}
int main (){
// pool po;
double r;
cin>>r;
// po.setR(r);
pool po(r+3);
cout<<"perimeter="<<po.getPeri()<<endl;
cout<<"fence="<<po.getPeri()*35<<endl;
cout<<"passageway="<<po.getArea()*20<<endl;
return 0;
}