LINUX.ORG.RU

[C++] Как из метода прозводного класса вызвать метод базового класса с тем же именем?

 


0

0

Здравствуйте!

Что-то не могу понять, можно ли такое провернуть в C++.

Есть базовый класс, и производный от него. В базовом классе есть некий метод (не чисто виртуальный, а с кодом). Пускай он называется action() к примеру.

Метод action() переопределяется в производном классе. И вот стоит задача в методе action() производного класса вызвать метод action() базового класса.

То есть нужно сделать так, чтобы действия, выполняемые в производном классе, не "заменяли" действия базового класса, а "дополняли".

Вопрос - возможно ли так сделать в C++? Если возможно, то как?


в жабе там ключевое слово super указает на родительский класс. В сях енип нужно кастануть указатель this к типу родителя, ну и нужно чтобы метод был виртуальным.

wfrr ★★☆
()
Ответ на: комментарий от wfrr

> В сях енип нужно кастануть указатель this к типу родителя, ну и нужно чтобы метод был виртуальным.

наоборот:) если будет невиртуальным, то все получится, вызовется действительно базовый. А виртуальный обломится.

dilmah ★★★★★
()
Ответ на: комментарий от yoghurt

Сорри)

Base_Class::method();

привык, что в С# и Vala только "."

mono ★★★★★
()

Аналогично с переменными:

class Base
{
  int myInt_;
};

class Derived : public Base
{
  int myInt_;
};

void Derived::doSomething()
{
  myInt_ = 5 + Base::myInt_;
}

Dendy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.