#include <iostream>

using namespace std;

class Foo {
public:
	void func(int param) { cout << param << endl; }
	void (Foo::*getPointer())(int) { return &Foo::func; }
};

class Bar {
	Foo foo;
public:
	Bar(Foo param) : foo(param) {}
	void print(int param) {
		void (Foo::*func)(int) = foo.getPointer();

		(foo.func)(param);
	}
};

int main() {
	Foo foo;
	Bar bar(foo);

	bar.print(13);
	return 0;
}