2016-07-21 6 views

答えて

0

あなたはValueオブジェクトを誤解していると思います。

[...]

cocos2d ::値は、多くのプリミティブ([...]とstd ::文字列)プラスのラッパークラスです

:あなたがにリンクされているドキュメントに書かれたとして、だから実際にValueは、他の種類の変数をラップするオブジェクトです。これは、ValueMapValuesの文字列のハッシュ - 各Valueは異なるタイプのオブジェクトになることがあります)のような緩やかに型付けされた構造を持つようにします。 ValueVectorValuesのリスト)。

たとえば、すべての文字列で、値の異なる一連のキーを持つ構成ハッシュを作成する場合は、バニラC++で、必要な型の値ごとに個別のデータ構造を作成する必要があります保存するのではなく、Valueであなただけ行うことができます。

unordered_map<std::string, cocos2d::Value> configuration; 

configuration["numEnemies"] = Value(10); 
configuration["gameTitle"] = Value("Super Mega Raiders"); 

それは強く型付けされた言語であるC言語でいくつかの緩いタイピングを++作成するだけのメカニズムです。

あなたはこのような何かを持つ値に文字列を保存することができます:

std::string name = "Vidur"; 
Value nameVal = Value(name); 

をし、後ででそれを取得:

std::string retrievedName = nameVal.asString(); 

あなたが間違った型としてValueを解析しようとすると、これはコンパイラが把握できるものではないため、実行時にエラーが発生します。

質問がある場合はお知らせください。

関連する問題