1 #include "base.h" 2 3 class Foo : public FooBase { 4 public: 5 Foo(); 6 7 // Deliberately defined by hand. 8 Foo &operator=(const Foo &rhs) { 9 x = rhs.x; // break1 10 a = rhs.a; 11 return *this; 12 } 13 int a; 14 }; 15 16 namespace ns { 17 class Foo2 : public Foo2Base { 18 public: 19 Foo2(); 20 21 // Deliberately defined by hand. 22 Foo2 &operator=(const Foo2 &rhs) { 23 x = rhs.x; // break2 24 a = rhs.a; 25 return *this; 26 } 27 28 int a; 29 }; 30 } // namespace ns 31 32 extern Foo foo1; 33 extern Foo foo2; 34 35 extern ns::Foo2 foo2_1; 36 extern ns::Foo2 foo2_2; 37