前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >函数禁用delete与替代函数体定义default

函数禁用delete与替代函数体定义default

作者头像
Qt君
发布2019-07-15 16:51:11
4970
发布2019-07-15 16:51:11
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

介绍deletedefault在函数中的使用方法。

函数禁用delete

  在函数声明后加入=delete即可将该函数标记,一旦被调用则会导致编译错误。   例如:

代码语言:javascript
复制
struct Test {
    void* operator new(std::size_t) = delete;
    void* operator new[](std::size_t) = delete;
};
Test *p = new Test; // 编译错误

替代函数体定义dafault

  在函数声明后加入=default即可替代函数体进行定义,适用范围类的特殊成员函数,且该特殊成员函数没有默认参数。   例如:

代码语言:javascript
复制
class Test {
public:
    Test() = default;
};

  等价于:

代码语言:javascript
复制
class Test {
public:
    Test() 
    {
    }
};

参考

代码语言:javascript
复制
https://en.cppreference.com/w/cpp/language/member_functions#Special_member_functions
https://en.cppreference.com/w/cpp/language/function#Deleted_functions
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数禁用delete
  • 替代函数体定义dafault
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档