dynamic_cast
От: Yuri Россия http://spbdetails.ru
Дата: 24.12.01 15:49
Оценка:
Привет всем!

Следующий код вызывает ошибку
CTestDoc* GetDocument() {return dynamic_cast<CTestDoc *> (m_pDocument);}

c:\yuri\1_projects\vc++\linkor\groupview.h(26) : error C2680: 'class CTestDoc *' : invalid target type for dynamic_cast

Подскажите плиз, в чем проблема?
Take it easy.
Re: dynamic_cast
От: Igor Soukhov  
Дата: 25.12.01 10:16
Оценка:
Здравствуйте Yuri, Вы писали:

Y>Привет всем!


Y>Следующий код вызывает ошибку

Y>CTestDoc* GetDocument() {return dynamic_cast<CTestDoc *> (m_pDocument);}

Y>c:\yuri\1_projects\vc++\linkor\groupview.h(26) : error C2680: 'class CTestDoc *' : invalid target type for dynamic_cast


Y>Подскажите плиз, в чем проблема?

вероятно класс CTestDoc не определен в месте компиляции... покдключи в искходник заголовочный
файл в котором определен твой класс документа.
* thriving in a production environment *
Re[2]: dynamic_cast
От: Yuri Россия http://spbdetails.ru
Дата: 26.12.01 14:59
Оценка:
Здравствуйте Igor Soukhov, Вы писали:

IS>вероятно класс CTestDoc не определен в месте компиляции... покдключи в искходник заголовочный

IS>файл в котором определен твой класс документа.

с видимостью класса документа проблем нет, следующий код
CTestDoc* GetDocument() {return (CTestDoc *)m_pDocument;}
работает без проблем
Take it easy.
Re: dynamic_cast
От: Avtii  
Дата: 26.12.01 16:19
Оценка:
Здравствуйте Yuri, Вы писали:

Y>Привет всем!


Y>Следующий код вызывает ошибку

Y>CTestDoc* GetDocument() {return dynamic_cast<CTestDoc *> (m_pDocument);}

Y>c:\yuri\1_projects\vc++\linkor\groupview.h(26) : error C2680: 'class CTestDoc *' : invalid target type for dynamic_cast


Y>Подскажите плиз, в чем проблема?


У меня след. код не вызывает ошибки компиляци:

CRsdntestDoc* CRsdntestView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRsdntestDoc)));
//return (CRsdntestDoc*)m_pDocument;

return dynamic_cast<CRsdntestDoc *> (m_pDocument);

}

но припопытке вызова GetDocument() происходит exception...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.