CList, CArray, CMap
имеется класс, который хочется хранить в связанном списке (т.е. CList). Класс объявляю производным от CObject. Потом в коде делаю следующее объявление:
CList< ClassA, ClassA> m_class
эта строка не хочет компилироваться - что не так?
З.Ы. <afxtempl.h> включен в заголовок
Для начала попробуй убрать пробел после
первой скобки.
CList< ClassA, ClassA> m_class
Для начала попробуй убрать пробел после
первой скобки.
Вся строка без пробелов, он мне пишет:
error C2582: 'ClassA' : 'operator =' function is unavailable
c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(1566) : while compiling class-template member function 'struct __POSITION *__thiscall CList<class ClassA,class ClassA>::AddTail(class ClassA)
Я так понимаю нужно просто перегрузить оператор "=" для твоего класса ClassA.
Он разве не наследуется из CObject?
Так придется все методы перегружать :(
Он разве не наследуется из CObject?
Так придется все методы перегружать :(
Только operator= надо перегрузить т.к. он используется в CList (хотя может для сортировки надо еще < > перегуржать...)
На правах бреда:
наследоваться то, он наследуется от CObject, но в том то и дело что = определен для CObject, а не для твоего класса - а список ты делаешь из элементов твоего класса - для которых = не определено.
Для "ненаследованых" от CObject классов определено присваивание по умолчанию (копирование побайтно)
Только operator= надо перегрузить т.к. он используется в CList (хотя может для сортировки надо еще < > перегуржать...)
На правах бреда:
наследоваться то, он наследуется от CObject, но в том то и дело что = определен для CObject, а не для твоего класса - а список ты делаешь из элементов твоего класса - для которых = не определено.
Для "ненаследованых" от CObject классов определено присваивание по умолчанию (копирование побайтно)
Попробую, кстати, класс CObList када использовать рекомендуется?