Страницы

Поиск по вопросам

воскресенье, 1 декабря 2019 г.

Как вызвать родительский метод из тела перегруженного в С++?

#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(); // А тут - код наследника } Так как метод, объявленный в производном классе, скрывает одноименный метод в родительском классе, то следует использовать квалифицированное имя метода родительского класса.

Комментариев нет:

Отправить комментарий