Передать this как параметр
От: Monz  
Дата: 04.05.06 07:14
Оценка: :)))
Есть вот такой вот класс:
template<class T> class TemplPopupCtrl
{
};


От него наследуется
class CDecorEditorDlg : public TemplPopupCtrl<CDecorEditorDlg>
{
};


Можно ли как-нибудь передать при наследовании указатель на экзепляр класса CDecorEditorDlg ?
Т.е. примерно так:
class CDecorEditorDlg : public TemplPopupCtrl<CDecorEditorDlg, this>
{
};
Re: Передать this как параметр
От: Bell Россия  
Дата: 04.05.06 07:32
Оценка:
Здравствуйте, Monz, Вы писали:

M>Есть вот такой вот класс:

M>
M>template<class T> class TemplPopupCtrl
M>{
M>};
M>


M>От него наследуется

M>
M>class CDecorEditorDlg : public TemplPopupCtrl<CDecorEditorDlg>
M>{
M>};
M>


M>Можно ли как-нибудь передать при наследовании указатель на экзепляр класса CDecorEditorDlg ?

M>Т.е. примерно так:
M>
M>class CDecorEditorDlg : public TemplPopupCtrl<CDecorEditorDlg, this>
M>{
M>};
M>


В таком виде, как ты написал — никак. А зачем? В любом методе класса TemplPopupCtrl ты можешь получить указатель на потомка:

template <class T>
void TemplPopupCtrl::f()
{
   T* pChild = static_cast<T*>(this);
}
Любите книгу — источник знаний (с) М.Горький
Re: Передать this как параметр
От: sadomovalex Россия http://sadomovalex.blogspot.com
Дата: 04.05.06 07:32
Оценка: -1
Здравствуйте, Monz, Вы писали:

M>Можно ли как-нибудь передать при наследовании указатель на экзепляр класса CDecorEditorDlg ?

M>Т.е. примерно так:
M>
M>class CDecorEditorDlg : public TemplPopupCtrl<CDecorEditorDlg, this>
M>{
M>};
M>


зачем?
"Что не завершено, не сделано вовсе" Гаусс
https://lh3.googleusercontent.com/-jIXLxlvycbk/TtKm5Xxz7JI/AAAAAAAABEA/CITKwRG1hFg/w500-h200-k/mvp_horizontal.png
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.