C ++ this(在这种情况下会是当前类的链接)

时间:2011-01-30 22:46:28

标签: c++ oop c++11 this std

所以:

struct A { void foo(int) { } }; 

typedef std::function<void(int)>   Function;
typedef std::vector<Function>      FunctionSequence;
typedef FunctionSequence::iterator FunctionIterator;

FunctionSequence funcs;

A a;

funcs.push_back(std::bind(&A::foo, &a, std::placeholders::_1));
funcs.push_back(std::bind(&B::bar, &b, std::placeholders::_1));

// this calls a.foo(42) then b.bar(42):
for (FunctionIterator it(funcs.begin()); it != funcs.end(); ++it)
    (*it)(42);

如果我们在课堂A内订阅funcs.push_back,我们会代替&a this

2 个答案:

答案 0 :(得分:3)

如果我理解你的问题,答案应该是肯定的。 &variable总是等于this,正如variable调用的实例方法所见。

答案 1 :(得分:1)

是的,这听起来合乎逻辑,但这只是猜测。

A内部订阅,您是否希望将回调存储到此A的特定实例。如果是,那么您需要this

我们不了解您的需求,我可以想象所有三种变体(&a&bthis)都是正确的情况。