小编Bin*_*hou的帖子

如何将std :: unique_ptr <Parent>与只具有受保护虚拟析构函数的readonly Parent类一起使用

test.cpp,最小测试代码

#include <memory>
class Parent{ // A Interface That I can't modify! can't add 'friend' or modify 'protected'
protected:
    virtual ~Parent(){};
public:
    // other interfaces that no one is suitable for 'delete this'
};

class Derived : public Parent{ // My class
public:
    virtual ~Derived(){}
};

class Deleter : public Parent // My deleter to use unique_ptr
{
public:
    void operator()(Parent* ptr)
    {
        delete ptr; // Actually Wrong? cannot access ptr's protected & private member
    }
};

int main(int argc, …
Run Code Online (Sandbox Code Playgroud)

c++ virtual destructor protected unique-ptr

1
推荐指数
1
解决办法
151
查看次数

标签 统计

c++ ×1

destructor ×1

protected ×1

unique-ptr ×1

virtual ×1