我有以下代码:
class B{
protected:
X *x;
public:
function(char *data){
// access x
// works fine
}
};
class D: public B {
function2(char *data)
{
// access x
// gets garbage
}
};
我有一个成员变量,它是指针。此外,这个指针位于"data"
内,但是当我在D类中访问时,它显示垃圾。
答案 0 :(得分:0)
我戴上了我的通灵调试帽,并得出结论你可能会做这样的事情:
class Packet
{
public:
Gizmo* gizmo_;
};
class Processor
{
public:
void ProcessPacket(char* packet);
};
// ...
Packet packet;
// packet filled with goodies
Processor proc;
proc.ProcessPacket(reinterpret_cast<char*>(&packet.gizmo_));
我是对的吗?
如果是这样,我的猜测是你指向的Gizmo
已经不知何故超出范围 - 从而被摧毁 - 或者你没有错误地执行演员表。