如何使用指向当前对象的指针?
how to use a pointer to the current object?
只是想知道如何在 C++ 中使用(传递或 return)指向当前对象的指针?
在我的例子中,我有一个节点映射,我想为一个节点分配一个子节点,这样做会将当前节点作为父节点添加到子节点
下面是我现在的
void node::assign_child(node* child)
{
children.push_back(child);
child->parents.push_back(*this???);
}
非常接近,但是this
本身就是一个指针。你不想取消引用 this
否则你只会得到一个值。
child->parents.push_back(this);
嗯,this
本身就是一个指针,命名为“this指针”。
关于为什么它是指针,This SO post 可能会有所帮助。
或者看看 C++17 标准是怎么说的。
§12.2.2.1 this指针代表:
the keyword this
is a prvalue expression whose value
is the address of the object for which the function is called. The type of this in a member function of a class
X
is X*
.
只是想知道如何在 C++ 中使用(传递或 return)指向当前对象的指针?
在我的例子中,我有一个节点映射,我想为一个节点分配一个子节点,这样做会将当前节点作为父节点添加到子节点
下面是我现在的
void node::assign_child(node* child)
{
children.push_back(child);
child->parents.push_back(*this???);
}
非常接近,但是this
本身就是一个指针。你不想取消引用 this
否则你只会得到一个值。
child->parents.push_back(this);
嗯,this
本身就是一个指针,命名为“this指针”。
关于为什么它是指针,This SO post 可能会有所帮助。
或者看看 C++17 标准是怎么说的。
§12.2.2.1 this指针代表:
the keyword
this
is a prvalue expression whose value is the address of the object for which the function is called. The type of this in a member function of a classX
isX*
.