Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Наследование методов


Автор: valex 28.10.2002, 18:55
Господа, прошу совета!
Есть базовый объект
class CRez {
public:
virtual void GetData ( AData );
}
и наследник который перегружает виртуальную функцию.
class CMyRez {
public:
void GetData ( AData );
}

Мне необходимо из CMyRez::GetData ( AData) вызвать CRez::GetData (AData ).
Примерно это должно выглядеть так:
void CMyRez::GetData ( AData )
{
CRez *Rez;
Rez = (CRez*)this;
Rez->GetData ( AData ); // Не работает, а хотелось бы! Вызывает заново CMyRez::GetData ( AData )
// Далее код который я хочу дописать ...
}

Автор: SetQ 28.10.2002, 20:36
м...
в этом же весь и цимес! убери нафиг virtual.
ну а если обязательно нужно virtual, то попробуй

{
...

CRez::GetData ( ... ); // сам не проверял - лень.

...
}

Автор: Fantasist 29.10.2002, 02:02
Цитата(valex @ 28.10.2002, 10:55)
class CMyRez {
public:
void GetData ( AData );
}

Предполагается, что это на самом деле:
class CMyRez {
public:
virtual void GetData ( AData );
}
?
Иначе это теряет смысл. Как уже сказали выше, это делается так:

void CMyRez::GetData ( AData )
{
 CRez::GetData(AData) ;
}

Автор: valex 29.10.2002, 16:21
Спасибо работает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)