MST
星途 面试题库

面试题:C++函数模板类型参数生命周期管理之高级题

假设有一个函数模板template<typename T> void process(T& obj) { /* 函数体 */ },如果传入的T是一个指向动态分配内存的指针类型,在函数模板内部如何正确管理这块动态内存的生命周期,以避免内存泄漏?请给出详细实现代码。
12.9万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <memory>

template<typename T>
void process(T& obj) {
    // 使用std::unique_ptr来管理动态分配的内存
    std::unique_ptr<std::remove_pointer_t<T>> ptr(obj);
    // 在这里可以对ptr指向的对象进行操作,函数结束时,std::unique_ptr会自动释放内存
    // 函数体
}