PDA

Visualizza la versione completa : [C++] Problema con typeid(*this).name();


Donovant
26-09-2005, 17:57
Ho un problema nella scrittura di questa piccola classe:
class Errore{
public:
virtual char* nome(){return typeid(*this).name();}


};
Mi dice sono che l'errore nella linea del typeid, ma non dice altro.Non riesco a capire;
voglio che nome() dica quale "tipo" si sta riferendo al metodo nome() e quindi anche alla classe Errore.
Esempio:
//dopo aver incluso #include <tipeinfo>
int *a;
cout<<typeid(a).name()<<endl;
//l'output di questo pezzetto qui sarÓ

Pi
Ovvero puntatore "P" ad un intero "i".
Grazie!

netarrow
26-09-2005, 18:48
esempio:



#include <iostream>
#include <typeinfo>

using namespace std;

class Errore {
public:
virtual const char* nome() {
return typeid(this).name();
};
};

int main() {
Errore e;
int* a = NULL;
cout << typeid(a).name() << endl;
cout << typeid(e).name() << endl;
cout << e.nome() << endl;
return 0;
}


Se volevi per forza dereferenziare il this



...
return typeid(*this).name();
...


ho provato ma da errore a run-time dopo aver dato un warning a compile-time

:ciauz:

Loading