#include <iostream>
class MyClass {
public:
void memberFunction1(int param) {
std::cout << "Member function 1, parameter " << param << "\n";
}
void memberFunction2(int param) {
std::cout << "Member function 2, parameter " << param << "\n";
}
void print(bool whichOne) {
void (MyClass::*memberFunctionToCall)(int);
if (whichOne) {
memberFunctionToCall = &MyClass::memberFunction1;
}
else {
memberFunctionToCall = &MyClass::memberFunction2;
}
(this->*memberFunctionToCall)(42);
}
};
int main()
{
MyClass myInstance;
myInstance.print(true);
myInstance.print(false);
return 0;
}