=default, =delete
来源:互联网 发布:淘宝特卖-连衣裙 编辑:程序博客网 时间:2024/05/21 06:42
=default, =delete
=default
如果自己定义了一个ctor,那么编译器就不会再合成一个default ctor
如果强制加上=default, 编译器就会合成一个default ctor
=delete
禁止编译器合成
当被需要时c++编译器能合成的四类函数
构造,拷贝构造,拷贝赋值,析构函数
class Test {public: Test(int i, int j):d1(i), d2(j) {} //默认构造函数 Test(const Test& t) = delete; //拷贝构造 Test(Test&&) = default; Test& operator=(const Test&) = default; //拷贝赋值 Test& operator=(const Test&&) = delete; virtual ~Test() {} //析构private: int d1, d2;}
构造函数可以有多个版本,拷贝构造,拷贝赋值,析构只能有一个版本
下述打//的会编译出错
class Foo {public: Foo(int i): num(i){} Foo() = default; Foo(const Foo& x):num(x.num) {} //Foo(const Foo&) =default; //不能重载 //Foo(const Foo&) =delete; //已经写了,不能delete Foo& operator=(const Foo& x) { num = x.num; return *this; } //Foo& operator=(const Foo& x) =default; //不能重载 //Foo& operator=(const Foo& x) =delete; //已经写了,不能delete //void func1() = default; //普通函数不能default,可以delete(没意义) void fun2() = delete; //~Foo() = delete; ~Foo() =default;private: int num;}
实现不可拷贝的类
只要与拷贝有关的构造函数不存在即可
class Nocopy {public: Nocopy() = default; Nocopy(const Nocopy&) = delete; Nocopy& operator=(const Nocopy&) = delete; ~Nocopy() = default; //......}
设计成友元能拷贝
class uncopyable {protected: uncopyable() {} ~uncopyable() {}private: uncopyable(const uncopyable&); const uncopyable& operator=(const uncopyable&);}
阅读全文
0 0
- =default,=delete
- =default, =delete
- default,delete
- 【C/C++】C++11新特性:=default 和 =delete
- 学习笔记:default, delete关键字
- =default修饰函数
- C++11的default和delete关键字
- c11新标准之delete,default,override,final
- 构造函数delete和default关键字分析
- C++11的default和delete关键字
- C++11 之 delete 和 default
- C++构造函数的default和delete
- C++11之default和delete
- c++11之default和delete
- default-autowire="byName" default-lazy-init="true"
- <default-interceptor-ref name="myStack"></default-interceptor-ref>
- C#==> default关键字
- Struts2==>default.properties
- leetcode Evaluate Division
- F
- 企业级分布式任务调度系统介绍
- 针对oc和java中的引用类型的几次错误
- Mysql按日、周、月进行分组统计
- =default, =delete
- Spring源码解读之Xml解析Annotation解析
- Docker学习总结(29)——Docker核心技术与实现原理
- ios项目的开始(一)项目的搭建
- 第三章-集合论 3.3-函数
- matlab STFT从时频图找异常噪声的频率
- 听说人工智能占领了世界互联网大会
- CNN模型之MobileNet
- java序列化