C++11中=delete的用法是什么
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇文章为大家展示了C++11中=delete的用法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++11中,当我们定义一个类的成员函数时,如果后面使
千家信息网最后更新 2025年11月07日C++11中=delete的用法是什么
本篇文章为大家展示了C++11中=delete的用法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
C++11中,当我们定义一个类的成员函数时,如果后面使用"=delete"去修饰,那么就表示这个函数被定义为deleted,也就意味着这个成员函数不能再被调用,否则就会出错。
#includeclass TestClass{public: int func(int data)=delete;};int main(void){ TestClass obj; obj.func(100); return 0;}
编译时直接报错,如下,
在C++11之前,当我们希望一个类不能被拷贝,就会把构造函数定义为private,但是在C++11里就不需要这样做了,只需要在构造函数后面加上=delete来修饰下就可以了。
巧妙用法
这里说个=delete的巧妙用法,在C++里会有很多隐式类型转换,如下代码,
#includeclass TestClass{public: void func(int data) { printf("data: %d\n", data); }};int main(void){ TestClass obj; obj.func(100); obj.func(100.0); return 0;}
输出如下,
当我们把100.0传给obj.func()时,发生了隐式类型转换,由double转为了int,有时我们不希望发生这样的转换,我们就是希望传进来的参数和规定的类型一致,那么此时可以使用=delete来达到这个目的,如下,
#includeclass TestClass{public: void func(int data) { printf("data: %d\n", data); } void func(double data)=delete;};int main(void){ TestClass obj; obj.func(100); obj.func(100.0); return 0;}
我们把参数类型是double的重载函数加上=delete进行修饰,表示这个函数被删除,那么用户就不能使用这个函数了,这样再编译就会出错,
上述内容就是C++11中=delete的用法是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
函数
类型
巧妙
内容
参数
就是
成员
技能
知识
编译
简明
一致
简明扼要
代码
意味
拷贝
文章
是在
更多
用户
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
cnki的数据库是
服务器网页登录怎么修改账户密码
5g核心网络安全
中国网络安全法哪次会议通过
河北app软件开发销售价格
手机网络安全游戏
数据库删除了还能恢复
汽车电子软件开发有前途吗
怎么样配置数据库
福田靠谱的网络安全运维
长沙学习软件开发公司哪家强
打开应用服务器未响应是什么情况
虚拟数据库组装技术
江西戴尔服务器维修维保云空间
提倡清朗网络安全的征文
java和数据库的连接语句
视频播放软件开发
合肥中科云网络技术有限公司
怎么以管理员身份运行安装服务器
淮阴区吧乐吧网络技术服务部
nstl订购了什么是实型数据库
物流信息技术数据库
银行网络安全宣传周总结报告
手机网络安全游戏
软件开发公司的口碑
sql 关闭数据库连接
计算机网络技术属于什么系部
网络安全防护技术书籍
舒悦小说软件开发
保障网络安全对网监的效益