我是 C++ 的初学者,我使用的资源表明以下语句d3 = d1 + d2; 调用以下内容:
- + 运算符
- 默认构造函数
- 复制构造函数
- 析构函数
- 赋值运算符
- 析构函数
我不明白为什么在将结果分配给先前声明的变量时调用复制构造函数以及为什么调用 2 个构造函数。
运营商如下:
date& date::operator=(const date& other)
{
cout << "Date assignment op" << endl;
if (this!=&other){
day=other.day;
month=other.month;
year=other.year;
}
return *this;
}
date date::operator+(const date& other) const
{
cout << "Date Operator + called" << endl;
date temp;
temp.day=day+other.day;
temp.month=month+other.month;
temp.year=year+other.year;
return temp;
}