c++问题,在哪调用了2次构造函数,在哪调用了析构函数3次

#include<iostream.h>classPoint{protected:intx;inty;public:virtualvoidshow()=0;};class... #include <iostream.h>
class Point
{
protected:
int x;
int y;

public:
virtual void show()=0;
};

class Rectangle:public Point
{
private:
float H;
float W;
float SArea;

public:
Rectangle(float a=0 ,float b=0):H(a),W(b){cout<<"\n初始化矩形类的一个对象";}

~Rectangle(){cout<<"\n回收点矩形类对象的内存空间";}

Rectangle(Rectangle &d)
{ this->H=d.H;
this->W=d.W;
this->SArea=d.SArea;
}

float Area()
{ SArea= H*W;
return SArea;
}

friend float operator+(Rectangle &,Rectangle &);

void show( )
{ cout<<"\nH="<<H;
cout<<"\nW="<<W;
cout<<"\nSArea="<<SArea;
}

};

float operator+(Rectangle &a,Rectangle &b)
{
return a.SArea+b.SArea;
}

int main()
{
Point *pt;
Rectangle x(3,4),y(5,6);

x.Area();
y.Area();

Rectangle t(x);
float z;
z=x+y;

pt=&x;
pt->show();

pt=&t;
pt->show();
return 0;

}
展开
 我来答
百度网友5c69cfc
2013-12-26 · TA获得超过238个赞
知道小有建树答主
回答量:325
采纳率:100%
帮助的人:223万
展开全部
    Rectangle x(3,4),y(5,6); // 构造2次
    ...
    Rectangle t(x);    // 复制构造1次
    ...
    return 0;  
} // 析构函数3次
追问
Rectangle x(3,4),y(5,6); // 构造2次为什么是两次
追答
一个 x对象  ,一个 y对象
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式