C++中 =default和=delete

default(Defaulted Function)
编译器创建此函数的默认实现
默认函数需要用于特殊的成员函数(默认构造函数,复制构造函数,析构函数等)

delete(expicitly deleted)
禁用成员函数使用
通常是针对隐式函数


class A
{
public:
   A() = default;
   A(const A &a) = delete;
};

int main()
{
   A a1;
   A a2 = a1;

   return 0;
}
$ g++ default.cpp -std=c++11
default.cpp: In function ‘int main()’:
default.cpp:12:11: error: use of deleted function ‘A::A(const A&)’
    A a2 = a1;
           ^
default.cpp:6:4: note: declared here
    A(const A &a) = delete;
    ^
posted @   thomas_blog  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-09-01 JAVA 抽象类 abstract
2020-09-01 JAVA转型
2020-09-01 JAVA 复写
2019-09-01 qt 使用OpenCV
点击右上角即可分享
微信分享提示