class A; class B; E>class A { E>... friend class B; E>public: type aFunction(); E>}; E>class B { E>... E>public: type bFunction(); friend class A; E>}; E>