拷贝构造函数和析构函数

拷贝构造函数是一种特殊的构造函数,其形参是本类对象的引用。其构造函数的作用是,在建立一个新对象时,使用一个已经存在的对象去初始化这个新对象。

析构函数也是一种特殊的成员函数,它执行与构造函数相反的操作,通常用于执行一些清理任务,如释放分配给对象的内存对象等。

 

 通过题目描述以及主函数我们可以简单写出类

class RECT{
	public:
		void set(double x1,double y1,double x2,double y2);
		RECT(double a=0.0,double b=0.0,double c=0.0,double d=0.0);
		~RECT();
		RECT(const RECT &r);
		void showinfo();
		double perimeter();
		double area();
		void show();
	private:
		double x1,x2,y1,y2;
	};

 

 通过输出结果我们可以推测写出函数

void set(double x1,double y1,double x2,double y2){
			this->x1=x1,this->x2=x2,this->y1=y1,this->y2=y2;
		}//用于初始化成员函数
RECT(double a=0.0,double b=0.0,double c=0.0,double d=0.0){
			x1=a,y1=b,x2=c,y2=d;
		}//构造函数赋初值
~RECT(){
			cout<<"("<<x1<<","<<y1<<","<<x2<<","<<y2<<")"<<"deconstruct"<<endl;
		}//析构函数输出,并表现析构函数的作用
RECT(const RECT &r){
			x1=r.x1,y1=r.y1,x2=r.x2,y2=r.y2;
		}//拷贝构造函数,拷贝函数数值

其他的函数程序 

        void showinfo(){
			cout<<"("<<x1<<","<<y1<<","<<x2<<","<<y2<<")";
		}
		double perimeter(){
		    return 2*(fabs(x2-x1)+fabs(y2-y1));
		}
		double area(){
		    return fabs(x2-x1)*fabs(y2-y1);
		}
		void show(){
		    int i=0,j=0;
		    for(int i=1;i<=fabs(y2-y1);i++)
	    {
	        for(int j=1;j<=fabs(x2-x1);j++)
	        cout << "*";
	        cout << endl;
    	}
		}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值