0

私はそのような値にポインタを代入しようとしています

    string name;
    XMLSerial * ptr;

    if(name == "Armor")
    {
         ptr = &name;
    }

名前は先に初期化されています。XMLSerial は私が書いたクラスです。一部の XML をオブジェクトにデシリアライズしようとしています。その名前が私が定義したクラスまたはオブジェクトの 1 つである場合、XMLSerial オブジェクト ポインターでオブジェクト用のスペースを作成する必要があります。

私が得ているエラーはcannot convert std::string* {aka std::basic_string<char>*} to XMLSerial* in assignment.

4

2 に答える 2

1

投稿したコードは、説明したとおりに失敗するはずです。どこでレールから外れたかを正確に知ることは困難ですが、XMLSerial には、operator=(std::string)使用しようとしている が含まれている可能性があります。

その場合は、コードを次のように置き換えます。

string name;
XMLSerial xml;

if(name == "Armor")
{
     xml = name;
}
于 2013-02-11T00:27:12.120 に答える
0

XMLSerialオブジェクトを から構築できると仮定するとstring、これは機能します。

string name;
XMLSerial * ptr;

if(name == "Armor")
{
     ptr = new XMLSerial( name );
}

編集:

そして、コメントされているように、ポインターを処理しnewたりdelete、独自の責任を負ったりします。

于 2013-02-11T00:26:17.123 に答える