16,471
社区成员
发帖
与我相关
我的任务
分享
// main.cc
#include <iostream>
class A {
public:
A(int who) :i{ who } {};
~A() = default;
void foo() {
std::cout<<"I am object" << i << std::endl;
}
void caller(A* p, void( A::* lpFunc)()) {
(p->*lpFunc)();
}
void test(){
A b{2};
caller(this, &A::foo);
caller(&b, &A::foo);
}
private:
int i{ 0 };
};
int main(void){
A a{1};
a.test();
}
$ c++ main.cc && ./a
I am object1
I am object2