在一个类中,如果我像下面这样声明一个析构函数和一个运算符,那么就会调用一个析构函数。例如
#include <iostream>
using namespace std;
class CRectangle {
int width, height;
public:
static int n;
CRectangle (int,int);
~CRectangle ();
int area () {return (width * height);}
CRectangle operator + (CRectangle);
};
CRectangle CRectangle::operator+ (CRectangle param){
x+=param.x;
y+=param.y;
}
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
n++;
}
CRectangle::~CRectangle () {
n--;
}
CRectangle::n=0;
int main () {
CRectangle rect (3,4), rectb (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
rect=rect+rectb;
return 0;
}
为什么在我执行操作时会调用析构函数 +?? 程序终止后 n 的最终值变为-1....