ich den Typ des Objekts (oder Typ) Ich habe in meiner Liste wissen wollen, so schrieb ich folgendes:Wie erkennt man den Typ eines Objekts in einer Liste?
void **list; //list of references
list = new void * [2];
Foo foo = Foo();
const char *not_table [] = {"tf", "ft", 0 };
list[0] = &foo;
list[1] = not_table;
if (dynamic_cast<LogicProcessor*>(list[0])) { //ERROR here ;(
printf("Foo was found\n");
}
if (dynamic_cast<char*> (list[0])) { //ERROR here ;(
printf("char was found\n");
}
aber ich bekomme:
error: cannot dynamic_cast '* list' (of type 'void*') to type 'class Foo*' (source is not a pointer to class)
error: cannot dynamic_cast '* list' (of type 'void*') to type 'char*' (target is not pointer or reference to class)
Warum ist das? was mache ich hier falsch? Ist dynamic_cast was ich hier benutzen soll?
Vielen Dank im Voraus
EDIT:
ich über Code weiß viel wie Ebene C und saugt sicher von der C++ Sicht aber nur habe ich die folgende Situation und ich war, bevor wirklich etwas versuchen, Implementierung:
Ich habe zwei Arrays der Länge n, aber beide Arrays werden nie ein Objekt auf dem gleichen Index haben. Also, oder ich habe array1 [i]! = NULL oder array2 [i]! = NULL. Dies ist offensichtlich eine Verschwendung von Speicher, so dass ich dachte, dass alles gelöst wäre, wenn ich beide Arten von Objekten in einem einzigen Array der Länge n hätte.
Ich suche etwas wie Cocoa (Objective-C) NSArray, wo Sie nicht um den Typ des Objekts kümmern. Nicht zu wissen, der Typ des Objekts ist kein Problem, da Sie eine andere Methode verwenden können um später die Klasse eines bestimmten zu bekommen. Gibt es so etwas in C++ (vorzugsweise nicht C++ - Bibliotheken von Drittanbietern)?
Vielen Dank im Voraus;)
vorschlagen würde, was Sie versuchen zu erreichen? C++ ist eine statisch typisierte Sprache, welche Funktion Sie durch dynamisch typisierte Objekte zu erfinden versuchen. Wenn wir das wissen, können wir vielleicht eine nützlichere Antwort geben. –