私はオブジェクト(またはタイプ)の種類を知りたい私は私のリストに私は、この書いている:リスト内のオブジェクトの型を知るには?
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");
}
を私は得る:
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)
これはなぜでしょうか?私はここで間違っていますか? dynamic_castは私がここで使うべきものですか?事前に
おかげ
編集:私は上記のコードを知っている
がはるかに通常のCのようなもので、確実に視野のC++の点から吸うが、私は次のような状況を持っていると私は本当に前に何かをしようとしていました
長さnの配列が2つありますが、どちらの配列も同じインデックスにオブジェクトを持つことはありません。 したがって、array1 [i]!= NULLまたはarray2 [i]!= NULLがあります。これは明らかに記憶の浪費なので、長さnの単一の配列に両方の種類のオブジェクトを持つことができれば、すべてが解決されると考えました。
私はCocoa(Objective-C)NSArrayのようなものを探しています。入れたいオブジェクトの型を気にしないところです。他の方法を使うことができるので問題はありません。後で特定のクラスを取得する。 C++のようなものがありますか(好ましくは第三者のC++ライブラリではありません)?事前に
感謝;)
のようなものを示唆していますか? C++は静的型付き言語であり、動的型付きオブジェクトを持つことによってどのような特徴を発明しようとしていますか?私たちがこれを知っていれば、より有用な答えを提供することができます。 –