使用指向当前对象的指针 - C++

use a pointer to the current object - C++

提问人:JoshAsh 提问时间:6/8/2021 最后编辑:JoshAsh 更新时间:9/21/2022 访问量:235

问:

只是想知道如何在 C++ 中使用(传递或返回)指向当前对象的指针?

在我的例子中,我有一个节点映射,我想为一个节点分配一个子节点,并在这样做时将当前节点作为父节点添加到子节点中

以下是我现在所拥有的

void node::assign_child(node* child)
{
   children.push_back(child);
   child->parents.push_back(*this???);
}
C++ 对象 指针

评论


答:

2赞 Silvio Mayolo 6/8/2021 #1

非常接近,但本身就是一个指针。你不想取消引用,否则你只会得到一个值。thisthis

child->parents.push_back(this);
3赞 Uduru 6/8/2021 #2

嗯,本身就是一个指针,命名为“这个指针”。this

关于为什么它是一个指针,这篇 SO 帖子可能会有所帮助。

或者看看 C++17 标准是怎么说的。
§12.2.2.1 此指针表示:

关键字是 prvalue 表达式,其值 是为其调用函数的对象的地址。在类的成员函数中,this 的类型是 。thisXX*