【问题标题】:Can a pointer inside a class point to this?类中的指针可以指向这个吗?
【发布时间】:2017-02-11 16:35:04
【问题描述】:

我正在实现一个最小堆,它具有保存子级之间最大键的额外属性。 我有一个 Node 类,如果 Node 是一片叶子,我希望它指向自己。 比如:

class Node
{
    public:
    void update max()
    {
      if ((left==NULL)&&(right==NULL))
           max=this;
    }


    private:
    Key* key;
    Value* val;
    Node* left;
    Node* right;
    Node* max;
}

原因是现在它指向 NULL,这让我在比较键之前检查 max 是否为 NULL 的次数太多。 我还应该提到我正在使用所有这些指针,因为 Key 和 Value 是纯虚拟的,并且 Node 有一个我将使用的派生类。 无论如何..是否有可能有一个指向这个的成员变量?

【问题讨论】:

  • “有可能有一个成员变量指向这个吗?” 你为什么认为不可能?听起来你在问XY问题。请澄清您的实际问题。
  • 你试过编译运行吗?
  • max 是一个指针。 this 是一个指针。你也不想当指针吗?
  • @ABusyProgrammer 我有太多内存泄漏,所以它无法运行。
  • @πάνταῥεῖ 我试图了解类中的变量指向类本身是否合法。如果我创建一个Node的实例A,实例A的成员“max”是否可以指向这个?

标签: c++ oop pointers


【解决方案1】:

This 根据定义是指向对象自身的对象的引用/指针。
没有什么禁止您将该参考值保存到其他东西中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-16
    • 2010-09-22
    • 1970-01-01
    • 2016-08-11
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多