0

我正在尝试将指针分配给这样的值

    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

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对象可以从 a 构造string,这将起作用。

string name;
XMLSerial * ptr;

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

编辑:

而且,正如评论的那样,处理指针和new/delete带有自己的责任。

于 2013-02-11T00:26:17.123 回答