我试图指定一个像这样的值的指针
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
。
答案 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
都有自己的责任。