// ============================================================================ // p1c04_08_05 — 4.8.6.1 虚析构函数作用 // 来源:川大 C++/LinuxC wiki「02.Qt方向」 // 说明:本文件由 gen_part1.py 合并页面中的教学片段而成。每个片段用 // // --- 原文片段 [pageId:blockIdx] --- 标注出处。 // 已做最小修正(笔误/平台移植),详见 docs/ERRATA.md。 // ============================================================================ #include using namespace std; // --- 原文片段 [58954469:4] 4.8.6.1 虚析构函数作用 --- class People{ public: People(){ cout << "构造函数 People!" << endl; } virtual void showName() = 0; virtual ~People(){ cout << "析构函数 People!" << endl; } }; class Worker : public People{ public: Worker(){ cout << "构造函数 Worker!" << endl; pName = new char[10]; } virtual void showName(){ cout << "打印子类的名字!" << endl; } ~Worker(){ cout << "析构函数 Worker!" << endl; if (pName != NULL){ delete pName; } } private: char* pName; }; void test(){ People* people = new Worker; people->~People(); } // --- main --- int main() { test(); return 0; }