Say I have classes Foo and Bar set up like this:
class Foo { public: int x; virtual void printStuff() { std::cout << x << std::endl; } }; class Bar : public Foo { public: int y; void printStuff() { // I would like to call Foo.printStuff() here... std::cout << y << std::endl; } };
As annotated in the code, I’d like to be able to call the base class’s function that I’m overriding. In Java there’s the super.funcname() syntax. Is this possible in C++?
In C++ you have to explicitly name the base class in calling the derived class method. This can be done from any method from the derived class. The override is a special case of the method of the same name. In Java there is no multi inheritance, so you can use super which will uniquely name the base class. The C++ syntax is like this: