#include <iostream>
using namespace std;
class Inner {
public:
	void Fun() {
		cout << "Inner::Fun" << endl;
	}
};
class Outer {
private:
	Inner* m_pInner;
public:
	Outer(Inner* p_pInner) : m_pInner(p_pInner) {
	}
	Inner* operator -> () {
		return m_pInner;
	}
};
int main() {
	Inner objInner;
	Outer objOuter(&objInner);
	objOuter->Fun();
	return 0;
}