类对象指针不会分配给字符串

时间:2013-02-11 00:23:13

标签: c++ string class object pointers

我试图指定一个像这样的值的指针

    string name;
    XMLSerial * ptr;

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

名称已提前初始化。 XMLSerial是我写的一个类。我试图将一些XML反序列化为对象。如果名称是我定义的类或对象之一,我希望XMLSerial对象指针为对象创建空间。

我得到的错误是cannot convert std::string* {aka std::basic_string<char>*} to XMLSerial* in assignment

2 个答案:

答案 0 :(得分:1)

您发布的代码应该完全按照您描述的方式失败。很难确切知道你已经脱轨的地方,但你的XMLSerial可能有operator=(std::string)你想要使用。

如果是这种情况,请将代码替换为:

string name;
XMLSerial xml;

if(name == "Armor")
{
     xml = name;
}

答案 1 :(得分:0)

假设您的XMLSerial对象可以从string构建,这将有效。

string name;
XMLSerial * ptr;

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

修改

并且,如评论所述,处理指针和new / delete都有自己的责任。