私はコードを書いていましたが、あるオブジェクトを他のオブジェクトとコピーコンストラクタに割り当てるために '='演算子を使用しました。私は以下のコードを実行すると、ここでコード'='オーバーロードが機能しません
DJSet(const DJSet& ds)
{
vector<Element<T>* > vec= ds.v_;
for (int i = 0; i < vec.size(); i++)
{
v_.push_back(vec[i]);
}
//cout << "Copy Called\n";
}
DJSet operator=(DJSet ds)
{
DJSet<T> djs;
vector<Element<T>* > vec = ds.v_;
for (int i = 0; i < vec.size(); i++)
{
djs.v_.push_back(vec[i]);
}
cout << "= Called\n";
return djs;
}
クラスがあるDJSetだからElement<T>* type
の一つだけのベクトルが含まれています。
DJSet<string> djs_rhs;
DJSet<string> djs_lhs;
cin >> name;
djs_rhs.add(name);
cin >> name;
djs_rhs.add(name);
cin >> name;
djs_lhs.add(name);
cin >> name;
djs_lhs.add(name);
djs_lhs = djs_rhs;
cout << djs_lhs << endl;
cout << endl;
cout << djs_rhs << endl;
右側の値を左側のオブジェクトにコピーせず、コピーコンストラクタと '='演算子の両方を呼び出しています。これで私を助けてください。どのように私はこれを続けることができますか?あなたが望むなら、私はソースコード全体を提供することができます。