【发布时间】:2013-05-05 18:09:21
【问题描述】:
我是 C++ 的新手,我不明白 this 指针在以下场景中的作用:
void do_something_to_a_foo(Foo *foo_instance);
void Foo::DoSomething()
{
do_something_to_a_foo(this);
}
我是从其他人的帖子中获取的。
this 指向什么?我糊涂了。函数没有输入,this在做什么?
【问题讨论】:
-
所有非静态方法都有一个隐式的
this指针。在典型的 C++ 实现中,它在第一个整数参数槽中传递。 -
我会避免做这样的事情 - 任何“对 foo 做某事”的函数都应该是 Foo 的成员函数/方法!
-
@Wayne Uroda:不一定。
-
@WayneUroda“可能”有点太强了。
-
“可能是 Foo 的一种方法的好候选人”怎么样?愿意为我提供一个反例吗? :)