#include namespace std {} using namespace std; class CManiac { public: CManiac* operator->() { return this; // 自分自身へのポインタを返す。 } void Hello() { printf("Hello!\n"); } }; class CMoreManiac { CManiac m_maniac; public: CManiac& operator->() { return m_maniac; } }; int main() { CMoreManiac moremaniac; moremaniac->Hello(); // CMoreManiac と CManiac の両 -> 演算子を介して Hello! と表示されます。 return 0; }