нкции operator«(ostream&,const

Автор admin Вторник, 16 июня 2009 11:32

нкции operator«(ostream&,const Bottom&). Обычно бывает разумнее поручить вывод каждого подобъекта соответствующему классу и предоставить производному классу вызывать функции базовых классов по мере необходимости. Но что произойдет, если мы попытаемся использовать этот подход с оператором «, как показано в следующем фрагменте? //: C09:VirtualBase2.cpp // Пример того, как НЕ СЛЕДУЕТ // реализовывать оператор « #i nclude using namespace std: class Top { int x; public: Top(int n) { x = n; } friend ostream& operator«(ostream& os. const Top& t) { return os « t.x: } }: class Left : virtual public Top { int y: public: Left(int m. int n) : Top(m) { у = n; } friend ostream& operator«(ostream& os. const Left& 1) { return os « static_cast(1) « ‘.’ « l.y: } }: class Right : virtual public Top { int z: public: Right(int m. int n) : Top(m) { z = n: } 458 Глава 9 • Множественное наследование friend ostream& operator«(ostream& os. const Right& r) { return os « static_cast(r) « ‘.’ « r.z; } }: class Bottom : public Left, public Right { int w; public: Bottom(int i. int j. int k. int m)


Комментарии закрыты.