【发布时间】:2013-02-11 00:23:13
【问题描述】:
我正在尝试将指针分配给这样的值
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。
【问题讨论】:
-
你希望上面的代码做什么?你为什么要指向一个
string并带有一个指向完全不同类型的指针? -
您不能仅通过将指针
T1*分配给指针T2*来反序列化 XML。 -
你应该向我们解释为什么你认为它应该编译,因为这对我来说显然是错误的。
-
哦,我知道为什么它不能编译了。我理解错误,我只是不知道如何解决它。我试图避免发布一英里的代码。在此代码之前,程序一次读入 xml 文件一个字符,然后一旦到达结束括号,就会设置名称值。然后我需要这个指针来比较名称和我必须处理的类的名称,如果名称匹配,则构造一个新的,将它分配给我传递给函数的指针。
标签: c++ string class object pointers