1 class C1 { 2 public: 3 C1(); 4 ~C1(); method_1()5 C1 *method_1() { 6 return this; 7 } method_2()8 C1 method_2() { 9 return C1(); 10 } method_3()11 void method_3() { 12 const C1 &ref = C1(); 13 } 14 }; 15 16 class C11 : public C1 { 17 }; 18 19 class C2 { 20 private: 21 int x; 22 friend class C3; 23 public: 24 static_assert(sizeof(x) == sizeof(int), "Error"); 25 typedef class C2::C2 InjType; 26 }; 27