Я бы не стал просить об этом, но примерно через 5 часов работы в поисковых системах и копировании через стек, текстовые книги и видеоролики YouTube я все еще застрял. Вот код, с которым я работаю (да, это довольно плохо, я просто изучаю C++). Если вы дойдете до сути, вы увидите, что мне не удается заставить конструктор копирования фактически создать другой объект типа SimpleVector. В последней строке показано, где я пытаюсь использовать созданный мной конструктор копирования, чтобы сделать mySV2 из mySV, а затем продемонстрировать, что это произошло с помощью функции печати для нового объекта.C++ Как правильно использовать конструкторы копирования с шаблонами классов
Еще раз спасибо за помощь и с моим новым вопросом. Я искренне верю, что обратная связь - это завтрак чемпионов (и меньше дерьмовых кодеров), поэтому, пожалуйста, уберите их и узнайте, что я буду вечно благодарен (или, по крайней мере, на протяжении всего этого класса) за вашу помощь.
template <class T>
class SimpleVector {
public:
T* myarray;
T* temparr;
//constructors
SimpleVector() {
size = 0;
myarray = NULL;
}
SimpleVector(int sz) {
size = sz;
myarray = new T[size];
}
//**** Copy Constructor ****
SimpleVector(const SimpleVector& sv) {
size = sv.size;
dataType = sv.dataType;
temparr = new T[size];
for (int i = 0; i < size; i++) {
temparr[i] = sv.myarray[i];
}
myarray = temparr;
}
};
int main() {
int howMany = 5;
SimpleVector<string> mySV(howMany);
for (int i = 0; i < howMany; i++) {
cout << "Enter item " << (i + 1) << ": ";
cin >> mySV.myarray[i];
}
mySV.print();
template<class T>
SimpleVector<T> mySV2(mySV);
mySV2.print();
return 0;
}
Существует много нерелевантного кода, можете ли вы попытаться создать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и показать нам вместо этого? –
Конструктор копирования - это единственное, что не является проблемой в этом. Вы пытаетесь использовать объекты за пределами их области действия, и вы пытаетесь объявить переменную шаблона внутри main. И у вас нет соответствующих открытых и закрытых брекетов. –
Спасибо за отзыв. Я попытался очистить его, чтобы было легче пройти. Если бы я не поместил определение класса шаблона обратно в основное, казалось бы, попытка использовать конструктор копирования просто породила ошибку неопределенного типа. Добавление его там разрешило это, но создало больше проблем. Спасибо вам за помощь. Надеюсь, я разрежу его, чтобы облегчить прохождение. –