Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CList, CArray, CMap

319
07 апреля 2003 года
xelos
577 / / 27.02.2003
проблема с использованием функций.
имеется класс, который хочется хранить в связанном списке (т.е. CList). Класс объявляю производным от CObject. Потом в коде делаю следующее объявление:

CList< ClassA, ClassA> m_class

эта строка не хочет компилироваться - что не так?
З.Ы. <afxtempl.h> включен в заголовок
3.9K
07 апреля 2003 года
Leonid
6 / / 07.04.2003
CList< ClassA, ClassA> m_class

Для начала попробуй убрать пробел после
первой скобки.
319
07 апреля 2003 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Leonid
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)

426
08 апреля 2003 года
Krivonos
112 / / 20.01.2000
Я так понимаю нужно просто перегрузить оператор "=" для твоего класса ClassA.
319
08 апреля 2003 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Krivonos
Я так понимаю нужно просто перегрузить оператор "=" для твоего класса ClassA.



Он разве не наследуется из CObject?
Так придется все методы перегружать :(

319
08 апреля 2003 года
xelos
577 / / 27.02.2003
Если убираю наследование от CObject, то все работает. Что делать, если хочется сохранить наследование, т.к. используется сериализация потом?
426
09 апреля 2003 года
Krivonos
112 / / 20.01.2000
475
09 апреля 2003 года
Winnie
90 / / 20.03.2000
Цитата:
Originally posted by xelos


Он разве не наследуется из CObject?
Так придется все методы перегружать :(



Только operator= надо перегрузить т.к. он используется в CList (хотя может для сортировки надо еще < > перегуржать...)

На правах бреда:
наследоваться то, он наследуется от CObject, но в том то и дело что = определен для CObject, а не для твоего класса - а список ты делаешь из элементов твоего класса - для которых = не определено.
Для "ненаследованых" от CObject классов определено присваивание по умолчанию (копирование побайтно)

319
09 апреля 2003 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Winnie


Только operator= надо перегрузить т.к. он используется в CList (хотя может для сортировки надо еще < > перегуржать...)

На правах бреда:
наследоваться то, он наследуется от CObject, но в том то и дело что = определен для CObject, а не для твоего класса - а список ты делаешь из элементов твоего класса - для которых = не определено.
Для "ненаследованых" от CObject классов определено присваивание по умолчанию (копирование побайтно)



Попробую, кстати, класс CObList када использовать рекомендуется?

4.0K
10 апреля 2003 года
Chief
3 / / 07.04.2003
Поправка: оператор= и конструктор копирования не наследуются.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог