#cpp #ооп #функции
Есть класс. У него есть другой класс-наследник. В нём перегружается родительский метод. Мне нужно из перегруженного метода наследника, вызвать метод родителя. Как это сделать? class Foo{ public: void example(){ // Код родителя } }; class Bar : public Foo{ public: void example(){ // Тут должен выполнится код родителя // А тут - код наследника } };
Ответы
Ответ 1
Можете сделать это следующим образом void example(){ Foo::example(); // А тут - код наследника } или так void example(){ this->Foo::example(); // А тут - код наследника } или (при условии, что метод не является виртуальным), например, так void example(){ static_cast( this )->example(); // А тут - код наследника } Так как метод, объявленный в производном классе, скрывает одноименный метод в родительском классе, то следует использовать квалифицированное имя метода родительского класса.
Комментариев нет:
Отправить комментарий