#include namespace My_region { template class A { T mem; public: A& operator=(const T&); friend ostream& operator<<(ostream&, const A&); }; template A& A::operator=(const T& t) { mem = t; return *this; } template ostream& operator<<(ostream& out, const A& a) { out << a.mem << " (oggetto classe A)"; return out; } template > struct B { Q mem1; T mem2; }; } int main() { using My_region::B; { B p; cout << (p.mem1 = 66.45) << '\n'; cout << (p.mem2 = 67.12) << "\n\n"; } { B p; cout << (p.mem1 = 66.45) << '\n'; cout << (p.mem2 = 67.12) << "\n\n"; } { B p; cout << (p.mem1 = 66.45) << '\n'; cout << (p.mem2 = 67.12) << "\n\n"; } return 0; }