#include #include class Foo { public: void mytype() { std::cout << typeid(decltype(this)).name() << std::endl; } virtual void hi() { } }; class Bar : public Foo { }; int main() { Foo f; f.mytype(); Bar b; b.mytype(); }