Delete 关键字新特性

本文介绍了C++11中delete关键字的新特性,包括禁用复制构造函数和赋值运算符、防止自动类型转换造成的数据丢失、限制动态创建对象以及限制模板类创建特定类型的实例。通过示例代码详细阐述了delete关键字在这些场景中的使用方法及其效果。
摘要由CSDN通过智能技术生成

Delete 关键字新特性

在C ++ 11中,引入了关键字delete的新功能。我们可以将delete关键字应用于限制函数的使用。

下文将演示以下常见的使用场景:

  • 应用于编译器自动生成的函数以禁止使用特定的操作(如复制,比较)
  • 应用在成员函数上防止数据类型转换时导致数据丢失
  • 应用在new运算符上来限制堆上对象的创建
  • 应用在模板类上来限制创建特定的类实例

禁用复制构造函数和赋值运算符

我们可以将delete应用于编译器自动生成的函数,也可以用于其他函数。下面的User类中删除了复制构造函数和赋值运算符,如果有人尝试调用已删除的函数,则它将生成编译时错误。

class User{
   
	int id;
	string name;
public:
	User(int userId, std::string userName) : id(userId), name(userName){
   }

	User(const User & obj) = delete;	//禁用复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值