webForumDet fria alternativet

Hur tar man reda påvilken klass ett objekt är?

C/C++

1 svar · 178 visningar · startad av The_Hulk

Medlem sedan juni 20031 837 inlägg
Frågan#1

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++?

Medlem sedan juli 2002581 inlägg
#2

Det borde väl gå att skriva något sådant här:

(typeid *list[0]).name();

Glöm inte att inkludera <typeinfo>

251 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)