为什么已经定义的对象还可以再次定义呢?A a1(7.0, 3.0);之后再次对a1 = A(7.2, 3.0);定义,仍然可以。
a1 = A(7.2, 3.0);这里为什么还会调用一次构造函数,和析构函数
#include <iostream>
using namespace std;
class A {
float x, y;
public:
A() { x = 0; y = 0; cout << "调用无参数的构造函数\n"; }
A(float a) { x = a; y = 0; cout << "调用一个参数的构造函数\n"; }
A(float a, float b) { x = a; y = b; cout << "调用两个参数的构造函数\n"; }
A(A& a) { x = a.x; y = a.y; cout << "调用拷贝构造函数\n"; }
~A() { cout << "调用析构函数" << endl; }
void Print(void) { cout << x << '\t' << y << endl; }
};
void main(void)
{
A a1(7.0, 3.0);
a1.Print();
a1 = A(7.2, 3.0);
a1.Print();
a1 = A(8);
a1.Print();
A a2(a1);
}
运行结果: