У меня есть класс шаблона, и когда им подножка программы она говоритошибка LNK2019: неразрешенный внешний символ
ошибка LNK2019: оператор неразрешенный внешний символ «класс станд :: basic_ostream> & __cdecl < < (класс станд :: basic_ostream> &, класс CSet &) "(?? 6 @ YAAAV? $ basic_ostream @ DU? $ char_traits @ D @ std @@@ std @@ AAV01 @ AAV? $ CSet @ H @@@ Z) ссылка на функцию" public: void __thiscall Меню :: menu (void) "(? menu @ Menu @@ QAEXXZ)
на любую структуру данных, которую я пытаюсь использовать, , если кто-нибудь может объяснить мне, почему перегрузка g функции печати делает эту ошибку, я буду рад услышать об этом.
template <class T> class CSet{
T* Array;
int size;
public:
CSet()
{
Array = NULL;
size = 0;
}
CSet(CSet& other){
size = other.size;
Array = new T[size];
for (int i = 0; i < size; i++)
Array[i] = other.Array[i];
}
friend ostream& operator <<(ostream& out, CSet& other);
~CSet()
{
if (size > 0)
delete[] Array;
}
};
template <class T> ostream& operator <<(ostream& out, CSet<T>& other){
out << "(";
for (int i = 0; i < other.size; i++){
if (size>1)
out << other.Array[i] < ",";
else
out << other.Array[i];
}
out << ")" << endl;
return out;
}
Спасибо, что это сработало – user4949421