MST

星途 面试题库

面试题:C++ 继承下动态内存分配与多态的结合

假设有一个基类 `Base` 和派生类 `Derived`,都动态分配了内存。定义一个函数 `void process(Base* ptr)`,在函数内部需要正确处理 `ptr` 指向的对象(无论是 `Base` 类型还是 `Derived` 类型)的动态内存释放。请编写 `Base` 和 `Derived` 类的相关代码以及 `process` 函数,确保内存管理的正确性和多态性的正确实现。
17.2万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

class Base {
public:
    Base() {
        data = new int(0);
    }

    virtual ~Base() {
        delete data;
    }

private:
    int* data;
};

class Derived : public Base {
public:
    Derived() {
        additionalData = new double(0.0);
    }

    ~Derived() override {
        delete additionalData;
    }

private:
    double* additionalData;
};

void process(Base* ptr) {
    delete ptr;
}