Diciamo che abbiamo una gerarchia di classi. In fondo abbiamo Base e nella parte superiore Derivato. Come determinare la classe dell'oggetto anche se è convertita nel puntatore della classe base.Come determinare il tipo di oggetto effettivo in fase di runtime in C++;
Base* b = new Derived():
typeid(b).name(); // i want this to tell me that this is actually derived not base object
c'è un modo diverso dall'implementazione manuale del campo di stringa o di tale funzione di ottenimento virtuale?
PS: si parla di compilatore indipendente soluzione
Questo è possibile come spiegato nella risposta, ma questa è quasi sempre una cosa sbagliata da fare. Cosa stai cercando di ottenere qui? –
Niente esattamente è solo per lo scopo di argomentare :) – user1079475
Più versione orientata all'applicazione: http://stackoverflow.com/questions/351845/finding-the-type-of-an-object-in-c || Versione più generica che non menziona l'ereditarietà: http://stackoverflow.com/questions/11310898/how-do-i-get-the-type-of-a-variable –