Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Class...help |
Автор: FTK 11.6.2005, 15:46 |
Привет Всем!!! Сейчас еще учусь, помогите кто-нибудь ответить на такой вопрос: Как вызвать метод базового класса из объекта производного класса, если в производном классе этот метод был замещен? Если можно, то желательно с иллюстрацией =) ![]() |
Автор: Irokez 11.6.2005, 15:52 | ||
кажется так:
|
Автор: srd 11.6.2005, 15:54 | ||
|
Автор: jorkug 12.6.2005, 04:11 | ||
|
Автор: srd 12.6.2005, 06:33 |
jorkug Это будет работать неправильно, если метод виртуальный. |
Автор: jorkug 12.6.2005, 06:57 |
srd Да, но в противном случае это гораздо удобней |
Автор: FTK 13.6.2005, 17:07 |
Большое спасибо, помогли =)) |
Автор: Earnest 17.6.2005, 21:10 | ||||||
Может, еще не поздно... Чтобы в этом примере все работало правильно и с виртуальными функциями, надо писать так:
|
Автор: comcon1 17.6.2005, 22:40 |
Скорее всего, нет (но это не точно. Сейчас компилятор не под рукой :-( )Если ты хочешь обращаться к методу родительского класса по-другому, чем к методу ребенка, то зачем тебе делать метод виртуальным??? Хотя, бывает, надо. Сделай два метода - виртуальный и обычный и используй. |
Автор: Earnest 18.6.2005, 05:19 |
Если в производном классе определен метод с тем же именем, что и в базовом, но с другой сигнатурой, что часто бывает удобно, то метод базового класса для компилятора невидим. Способов борьбы 2: 1) как было написано ранее, base_class::method() 2) в определении производного класса написать using base_class::metod, Второй способ открывает все методы базового класса с таким именем; кроме того, он же позволяет изменять доступ к методам. Скажем, в базовом классе метод объявлен как protected. Если в производном поместить using в раздел public, то метод станет виден всем (при доступе через производный класс, конечно), а если, наоборот, в private - то свои потомки до него уже не доберутся. Кроме того, использование using позволяет открывать методы базового класса при private и protected наследовании. |