Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибки при компиляции... 
:(
    Опции темы
Jolyn
Дата 26.10.2003, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 25.10.2003

Репутация: нет
Всего: нет



Что значит сообщение при компиляции (MS VC++):
"
\mfc\include\afxtempl.h(443) : error C2582: CMyClass:
'operator =' function is unavailable
c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h
(1566) : while compiling class-template member function
'void __thiscall CArray<class CMyClass,class CMyClass&>::SetAtGrow
(int,class CMyClass&)'
"

веь этот поток брани происходит, видимо, в адрес след. строчки:
CArray <CMyClass, CMyClass&> data;
где CMyClass - простой класс, который тоже содержит шаблон (CList).

Подскажите, пожалуйста, где "порылась собака"? confused.gif
PM MAIL   Вверх
mr.DUDA
Дата 26.10.2003, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



При добавлении нового элемента в контейнер MFC, используется не конструктор копирования (как, например в STL), а оператор "=":
Код
// afxtempl.h

template<class TYPE, class ARG_TYPE>
POSITION CList<TYPE, ARG_TYPE>::AddHead(ARG_TYPE newElement)
{
ASSERT_VALID(this);

CNode* pNewNode = NewNode(NULL, m_pNodeHead);
pNewNode->data = newElement;
if (m_pNodeHead != NULL)
 m_pNodeHead->pPrev = pNewNode;
else
 m_pNodeTail = pNewNode;
m_pNodeHead = pNewNode;
return (POSITION) pNewNode;
}

Поэтому необходимо определить оператор присваивания в своём классе:
Код

class  CMyClass
{
     void operator= (CMyClass &ob);
 // .....
};

void CMyClass::operator= (CMyClass &ob)
{
     // ... действия по копированию из "ob" в "this"
}

Вот и всё.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.