Я писал код, и я использовал оператор '=' для назначения одного объекта другому и конструктора копирования. Вот кодПерегрузка '=' не работает
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;
Это не копируют значения с правой стороны к левой стороне объектов И звонит как конструктор копирования и оператор «=». Пожалуйста, помогите мне с этим. Как я могу продолжать это? Я могу предоставить весь исходный код, если вы хотите.