类中的指针可以指向这个吗?
Posted
技术标签:
【中文标题】类中的指针可以指向这个吗?【英文标题】: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”是否可以指向这个?
【参考方案1】:
This
根据定义是指向对象自身的对象的引用/指针。 没有什么禁止您将该参考值保存到其他东西中
【讨论】:
以上是关于类中的指针可以指向这个吗?的主要内容,如果未能解决你的问题,请参考以下文章