strings lbl. const char* fname

Автор admin Четверг, 7 мая 2009 11:32

strings lbl. const char* fname. long lineno): void do_fail(const strings lbl. const char* fname. long lineno): public: Test(ostream* osptr = Scout) { this->osptr = osptr: nPass = nFail = 0: } virtual ~Test() {} virtual void run() = 0: 78 Глава 2 • Защитное программирование long getNumPassedO const { return nPass: } long getNumFailedO const { return nFail; } const ostream* getStreamO const { return osptr; } void setStream(ostream* osptr) { this->osptr = osptr; } void succeed_() { ++nPass: } long reportО const; virtual void resetO { nPass = nFail = 0; } }: } // namespace TestSuite #endif // TEST_H ///:- Класс Test содержит три виртуальные функции: • виртуальный деструктор; • функцию reset(); • чисто виртуальную функцию run(). Как объяснялось в первом томе, удаление объекта производного класса через указатель на базовый класс является ошибкой, если у базового класса нет виртуального деструктора. Любой класс, который предполагается использовать в качестве базового (на что, очевидно, указывает присутствие хотя бы одной «обычной» виртуальной функции), должен иметь виртуальный деструктор. По умолчанию Test::r


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