Det borde väl gå att skriva något sådant här:
(typeid *list[0]).name();
Glöm inte att inkludera <typeinfo>
1 svar · 178 visningar · startad av The_Hulk
Hur kan man ta reda på vilken sorts klass ett visst objekt är?
class A {
void testMetod();
}
class B : public A {
void nyMetod();
}
main(){
A* list[10];
list[0] = new A();
list[1] = new B();
}
hur vet jag om jag kan anropa metoden nyMetod när jag hämtar ut ett objekt från arrayn list?
/r i java finns ju operatorn instanceOf samt metoden class() som returnerar en sträng med klassens namn. Finns det något motsvarande i C++?
Det borde väl gå att skriva något sådant här:
(typeid *list[0]).name();
Glöm inte att inkludera <typeinfo>