C ++将成员函数作为参数传递给成员函数

时间:2018-11-08 14:09:14

标签: c++ function pointers parameters

所以我只想将成员函数作为参数传递给成员函数。显然,这对于函数来说是直截了当的,但是对于成员函数(非静态的),我很难缠头。因此,我想传递此不同类的成员函数。 所以我想要以下内容:

#include <iostream>
#include <vector>
#include <functional>

using namespace std;

class A {
  public:
    void a(std::string somestring, int (A::*f) (int));
        int b(int i);
};

void A::a(std::string somestring, int (A::*f) (int)) {
    int i = 20;
  std::cout << somestring << " A::a()" << "\n";
    std::cout << (this->*f)(i) << "\n";
}

int A::b(int i) {
  std::cout << "B::b()" << "\n";
  return i+10;
}

class B {
  public:
    int c(int i);
};

int B::c(int i) {
  std::cout << "B::c()" << "\n";
  return i+20;
}

int main() {
    A objA;
    B objB;

    objA.a("test",&A::b);

}

这适用于相同的类(A :: a和A :: b),但如何为不同的类(例如B :: c作为A :: a的参数)实现呢?

我不认为这是重复的。我不会调用来自不同类的成员函数。其他问题的答案中没有涉及这些。

0 个答案:

没有答案