私は 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;
}