首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构造函数中的成员函数指针

构造函数中的成员函数指针
EN

Stack Overflow用户
提问于 2016-03-04 15:21:12
回答 4查看 528关注 0票数 7

我尝试在删除器中使用std::shared_pointer。我尝试使用一个成员函数作为删除器。然而,它无法编译。编译器给了我一条错误消息,但我不明白为什么它不能工作。有人知道它为什么不起作用吗?非常感谢。

简化代码如下,

代码语言:javascript
运行
复制
#include <memory>

class MemberFunctionPointerInConstructor {
public:
    MemberFunctionPointerInConstructor(void) {
        std::shared_ptr<int> a = std::shared_ptr<int>(new int(1), deleter);  // this line makes a compiler error message
    }

    void deleter(int* value) {
        delete value;
    }
};

编译器发出的错误消息如下,

代码语言:javascript
运行
复制
error: invalid use of non-static member function
std::shared_ptr<int> a = std::shared_ptr<int>(new int(1), deleter);
                                                                 ^

非常感谢。

EN

Stack Overflow用户

发布于 2016-03-04 15:22:33

要使用不绑定到类实例的成员函数,必须声明方法static

代码语言:javascript
运行
复制
static void deleter(int* value) {
    delete value;
}
票数 8
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35799621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档