GESP C++ 真题 · 逐题精解
首页C++六级真题 › 2026年6月 › 第2题

GESP 2026年6月 C++六级 判断题 第2题

C++六级判断题2026年6月第2题

所属知识点:类与对象 难度要求:— 考频:—

通过指向 Base 的指针删除 Derived 对象时,一定会先调用 Derived 的析构函数,再调用 Base 的析构函数。
class Base {
public:
    ~Base() { cout << "Base destructor" << endl; }
};
class Derived : public Base {
public:
    ~Derived() { cout << "Derived destructor" << endl; }
};
int main() {
    Base* p = new Derived();
    delete p;
    return 0;
}

正确答案:错误(×)

题目解析
只有当 ~Base() 是 virtual 时才会先调派生类析构。本例 ~Base() 非虚,delete 基类指针只会调用 ~Base(),Derived 部分不被析构(资源泄漏),所以「一定会」是错的,选 ×。💡 没有虚析构 + 基类指针 delete = 派生析构被跳过。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习