访问派生类中的指针成员变量

时间:2012-10-19 13:48:18

标签: c++

我有以下代码:

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

有人可以帮助我......

1 个答案:

答案 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已经不知何故超出范围 - 从而被摧毁 - 或者你没有错误地执行演员表。