.. Original article at http://text.maze.io/2010/01/06/using-super-in-c++ _______ ____________ _______ _\__ /_________ ___ _____ | _ _ \ _ | ____\ _ / | |/ _ \ | / / / / | | | /___/ _ | | / / |___/___/ /___/____|________|___ | |_| |___|_____/ \__/ |___| (c) 2010 Wijnand 'maze' Modderman - http://maze.io/ Using “super” in C++ ==================== My style of coding includes the following idiom:: class Derived : public Base { private: typedef Base super; // etc... }; This enables me to use "super" as an alias to Base, for example, in constructors:: Derived(int i, int j) : super(i), J(j) { } Or even when calling the method from the base class inside its overriden version:: void Derived::doSomething() { super::doSomething() ; // etc... } It can even be chained (I have still to find the use for that, though):: class DerivedDerived : public Derived { public: typedef Derived super; // etc... }; void DerivedDerived::doSomethingElse() { super::doSomethingElse() ; // will call Derived::doSomethingElse() super::super::doSomethingElse() ; // will call Base::doSomethingElse() // etc... } Anyway, I find the use of "typedef super" very useful, for example, when Base is either verbose and/or templated.