ава 9 • Множественное наследов
Автор admin
Понедельник, 15 июня 2009 11:32
ава 9 • Множественное наследование Как обычно, решение с применением шаблонов получается более компактным: //: C09:Interfaces2.cpp // Неявное наследование интерфейса с применением шаблонов #include #1nclude #i ncl ude using namespace std: class Able { int myData: public: Able(int x) { myData = x; } void print(ostream& os) const { os « myData: } int toIntO const { return myData: } string toStringO const { ostringstream os: os « myData: return os.strO: } }: tempiate void testPrintable(const Printable& p) { p.print(cout): cout « endl: } tempiate void testIntable(const IntableS n) { cout « n.toIntO + 1 « endl: } tempiate void testStringable(const Stnngable& s) { cout « s.toStringO + “th” « endl; } int mainO { Able a(7); testPrintable(a): testlntable(a): testStringable(a): } ///:- Имена Printable, Intable и Stringable стали обычными параметрами шаблонов, которые предполагают существование операций, обозначенных в их контекстах. Иначе говоря, тестовые функции могут получать аргументы любого типа, предоставляющего определение функци
Комментарии закрыты.
Последние комментарии