-4

我有以下代码:

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 类中访问时它显示垃圾。

有人能帮帮我吗...

4

1 回答 1

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您指向的 已超出范围 - 从而被破坏 - 或者您错误地执行了转换。

于 2012-10-19T18:52:39.827 回答