C++11中=delete的用法是什么
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇文章为大家展示了C++11中=delete的用法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++11中,当我们定义一个类的成员函数时,如果后面使
千家信息网最后更新 2025年02月02日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安全错误
数据库的锁怎样保障安全
出租房公共网络安全吗
成都软件开发系统集成
服务器管理系统怎么改
教学音频资源数据库建设
服务器违法分红但我不知情
九一互联网科技有限公司
优酷 多少服务器
l辽宁软件开发
最新信息网络技术
郑州计算机网络技术学院
从化网络数据库维护哪个品牌好
北京中宽宏运网络技术
我的世界服务器浆果园
态神数据库
csgo 搜索不到服务器
fr网络技术
计算机网络技术买哪种笔记本
西藏人口管理软件开发
酒托数据库贵阳
网络安全法健全用户信息制度
网络安全教育感悟200字
2018年国家网络安全宣传周活动主题是主题
2019年安全生产网络安全
小米手机如何代理服务器
成都计算机软件开发要多少钱
小说网站服务器在国外盗版
云服务器的出入口
武汉软件开发外包公司
洛阳市地名地址数据库建设项目
小沈阳视频软件开发