Para ese caso tendrías que hacerlo así (utilizo struct por efectos prácticos):
Código C++:
Ver original#include <iostream>
#include <typeinfo>
using namespace std;
struct Component{
virtual void printUniqueName(){
cout << typeid(*this).name() << endl;
}
};
struct Cube : Component{
};
int main(){
Component com;
Cube cub;
com.printUniqueName();
cub.printUniqueName();
}
OJO: Si tratas de invocar a la función virtual desde el constructor no te va a funcionar.