专栏首页跟Qt君学编程函数禁用delete与替代函数体定义default

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

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

函数禁用delete

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

struct Test {
    void* operator new(std::size_t) = delete;
    void* operator new[](std::size_t) = delete;
};
Test *p = new Test; // 编译错误

替代函数体定义dafault

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

class Test {
public:
    Test() = default;
};

  等价于:

class Test {
public:
    Test() 
    {
    }
};

参考

https://en.cppreference.com/w/cpp/language/member_functions#Special_member_functions
https://en.cppreference.com/w/cpp/language/function#Deleted_functions

本文分享自微信公众号 - Qt君(qtjuna)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 翻译 | 可重入与线程安全

      在整个文档中,术语:「可重入和线程安全」用于标记类和函数,以表示它们如何在多线程应用程序中使用:

    Qt君
  • 好与坏的布尔变量

      要想定义一件事物,你必须要明白和理解该事物才能做出定义。那么我们评判该定义是否恰当甚至是好坏,我们可以用该定义是否恰当表达出该事物。

    Qt君
  • QThread类

     QThread类提供一种独立于平台的线程管理方式。     一个QThread实例管理程序中的一个线程。QThread的执行开始于run()。默认情况下,ru...

    Qt君
  • TensorFlow从0到1丨 第六篇:解锁梯度下降算法

    上一篇 5 TF轻松搞定线性回归,知道了模型参数训练的方向是由梯度下降算法指导的,并使用了TF的封装tf.train.GradientDescentOptimi...

    用户1332428
  • TensorFlow从0到1 - 6 - 解锁梯度下降算法

    上一篇 5 TF轻松搞定线性回归,我们知道了模型参数训练的方向是由梯度下降算法指导的,并使用TF的封装tf.train.GradientDescentOpti...

    袁承兴
  • 小议如何使用APPLY

    简介 如果你打算为在结果集中的每条记录写一个调用表值函数或者表值表达式的select语句,那么你就能用到APPLY 操作符来实现。一般又两种形式写法: 第一种格...

    用户1217611
  • 必须要掌握的 InterruptedException 异常处理

    在了解InterruptedException异常之前应该了解以下的几个关于线程的一些基础知识。而且得知道什么时候会抛InterruptedException异...

    黄泽杰
  • SVM的R语言实战

    在R中,可以使用e1071软件包所提供的各种函数来完成基于支持向量机的数据分析与挖掘任务。请在使用相关函数之前,安装并正确引用e1071包。该包中最重要的一个函...

    智能算法
  • 记录年前Java岗整个历程(附字节,阿里,百度,网易,美团等面经)

    实习的时候真的是屡战屡败(阿里三次已回绝),真的要好好调整自己,面试过程中要充分思考,祝大家都收获自己满意的Offer?

    Java码农那些事
  • Java中不同的并发实现的性能比较

    正如即将上映的星球大战那样,Java 8的并行流也是毁誉参半。并行流(Parallel Stream)的语法糖就像预告片里的新型光剑一样令人兴奋不已。现在Jav...

    哲洛不闹

扫码关注云+社区

领取腾讯云代金券