C++中explicit的理解

1.先搞懂前提:没有 explicit 时的 “隐式转换”(新手最容易踩的坑)
explicit 是针对类的构造函数的,所以先从构造函数的一个 “隐藏特性” 说起:
如果一个类的构造函数只有 1 个参数(或者除第一个参数外,其他参数都有默认值),C++ 编译器会偷偷允许一种 “偷懒写法”——隐式转换:把这个参数类型的值,自动转换成类的对象。
举个菜鸟友好的例子(无 explicit):

点击查看代码
#include<iostream>
using namespace std;//定义一个表示数字的简单类
class MyNum {public://单参数构造函数(没有explicit)MyNum(int n) :num(n) {}//把传入的int值存到成员变量里int getNum() { return num; }
private:int num;};
// 一个测试函数:参数要求是MyNum类型
void showNum(MyNum mn) {cout << "数字是:" << mn.getNum() << endl;
}
int main() {//正常写法:显示创建MyNum对象(手动指定)MyNum a(10);showNum(a);//输出:数字是10//偷懒写法:隐式转换!直接传int值,编译器自动转成MyNum对象showNum(20);//编译器偷偷做了:showNum(MyNum(20)),输出:数字是:20return 0;
}

image

这个例子里,showNum(20) 本来参数需要 MyNum 类型,但你传了 int,编译器会自动帮你创建一个临时的 MyNum(20) 对象 —— 这就是隐式转换,看似方便,实则容易出 bug。

2.explicit的核心作用:禁止“偷懒”的隐式转换
explicit关键字只能加在类内的构造函数前面,作用就一句话:
告诉编译器“不许自动转!必须手动创建对象才行”。
修改上面的例子,给构造函数加explicit:

点击查看代码
#include<iostream>
using namespace std;//定义一个表示数字的简单类
class MyNum {public://单参数构造函数(没有explicit)explicit MyNum(int n) :num(n) {}//把传入的int值存到成员变量里int getNum() { return num; }
private:int num;};
// 一个测试函数:参数要求是MyNum类型
void showNum(MyNum mn) {cout << "数字是:" << mn.getNum() << endl;
}
int main() {//正常写法:显示创建MyNum对象(手动指定)MyNum a(10);showNum(a);//输出:数字是10//错误!隐式转换被禁止了(编译器直接报错)//showNum(20);//报错:无法将int转换为MyNumshowNum(MyNum(20));return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1182576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Path of Building中文版:从构建困惑到精通掌握的完整指南

Path of Building中文版&#xff1a;从构建困惑到精通掌握的完整指南 【免费下载链接】PoeCharm Path of Building Chinese version 项目地址: https://gitcode.com/gh_mirrors/po/PoeCharm 还记得那个在天赋星图中迷失方向&#xff0c;装备搭配让人头痛不已的下午吗&am…

2026年专业的厨房设备,饭店厨房设备,厨房设备安装厂家口碑推荐 - 品牌鉴赏师

引言在当今社会,厨房设备的质量和性能对于餐饮行业、学校、酒店等场所至关重要。为了给广大消费者提供客观、公正的厨房设备厂家选择参考,我们依据一系列科学的测评方法和权威数据,对市场上众多厨房设备厂家进行了综…

Bongo-Cat-Mver 终极安装配置指南:快速搭建你的Live2D动画助手

Bongo-Cat-Mver 终极安装配置指南&#xff1a;快速搭建你的Live2D动画助手 【免费下载链接】Bongo-Cat-Mver An Bongo Cat overlay written in C 项目地址: https://gitcode.com/gh_mirrors/bo/Bongo-Cat-Mver Bongo-Cat-Mver是一款基于C开发的Bongo Cat视频叠加工具&am…

计算机毕业设计Django+Vue.js农产品推荐系统 农产品可视化 农产品大数据(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 技术范围&#xff1a;Sprin…

2026年口碑好的热风循环消毒库,消毒房,高温消毒房厂家采购参考榜单 - 品牌鉴赏师

引言在当今对卫生安全要求日益严格的时代,热风循环消毒库、消毒房以及高温消毒房等消毒设备在众多领域发挥着至关重要的作用,尤其是在食堂、餐具消毒等场景。为了给广大采购者提供一份客观、公正、实用的厂家采购参考…

2026年评价高的组培瓶洗瓶机厂家推荐 - 优质品牌商家

2026年评价高的组培瓶洗瓶机厂家推荐一、行业背景与筛选依据据《2026-2030年中国组培农业设备市场调研报告》显示,国内组培农业年增速达15%,组培瓶作为组培苗培育的核心载体,其清洗洁净度直接影响无菌环境构建与组培…

BooruDatasetTagManager:3步掌握AI数据集标签管理终极秘籍

BooruDatasetTagManager&#xff1a;3步掌握AI数据集标签管理终极秘籍 【免费下载链接】BooruDatasetTagManager 项目地址: https://gitcode.com/gh_mirrors/bo/BooruDatasetTagManager 还在为海量AI训练图像的标签整理而烦恼吗&#xff1f;BooruDatasetTagManager这款…

2026年1月江苏徐州装修、装修设计、装修施工、设计工作室、别墅设计公司推荐:徐州黛雅装饰登顶 - 2026年企业推荐榜

文章摘要 随着别墅设计行业数字化升级,2026年江苏地区别墅设计平台成为企业提升设计效率与品质的核心。本文基于行业背景与市场痛点,从多维度评估精选6家顶尖公司,排名不分先后,重点推荐徐州黛雅装饰工程有限公司等…

PowerJob跨平台部署终极实战手册:从零构建企业级分布式调度系统

PowerJob跨平台部署终极实战手册&#xff1a;从零构建企业级分布式调度系统 【免费下载链接】PowerJob 项目地址: https://gitcode.com/gh_mirrors/pow/PowerJob 在企业数字化转型浪潮中&#xff0c;如何实现分布式任务调度系统的稳定部署成为技术团队面临的共同挑战。…

AI学习 - 诊断结论信息抽取 - LabelStudio 标注 -- 结论标注

将结论存放 X.txt 中,每个结论一个文件,准备50条,进行结论标注 选择项目: ImportUpload More Files本文来自博客园,作者:VipSoft 转载请注明原文链接:https://www.cnblogs.com/vipsoft/p/19500550

从行业痛点切入:时序数据时代的“存储与分析困局“及金仓解决方案

引言:当数字化浪潮遇上时序数据洪流 2026年,当我们谈论数字化转型时,一个不容忽视的现实是:全球每天产生的数据中,超过70%带有时间戳属性。从智能制造车间里每秒采集的数千个传感器数据,到金融市场瞬息万变的交易行情,再到智慧城市中数十万个交通监控节点的实时信息流——时序数…

2026年目前优质的铝合金衬塑复合管生产厂家推荐,阻氧型铝合金衬塑复合管,铝合金衬塑复合管直销厂家排行 - 品牌推荐师

引言 在现代建筑给排水、集中供暖、工业流体输送等领域,管道系统的安全性与耐久性直接关系到整个项目的长期稳定运行与经济效益。铝合金衬塑复合管,作为一种结合了金属管强度与塑料管耐腐蚀性的新型复合管材,凭借其…

服务不错的吹膜机工厂推荐,瑞安市天晟包装机械有限公司技术怎么样? - 工业品牌热点

问题1:市场上吹膜机厂家这么多,怎么判断哪些是口碑好的吹膜机厂家?有具体标准吗? 判断口碑好的吹膜机厂家,不能只看广告宣传,得从设备性能、服务体系、客户反馈、行业资质四个核心维度综合评估。首先看设备性能是…

XPipe革命性服务器管理平台:全栈运维新体验

XPipe革命性服务器管理平台&#xff1a;全栈运维新体验 【免费下载链接】xpipe Your entire server infrastructure at your fingertips 项目地址: https://gitcode.com/GitHub_Trending/xp/xpipe 在当今数字化时代&#xff0c;服务器管理已成为技术团队的核心挑战。面对…

网闸多少钱?附不同规模企业的选型与预算方案 - 飞驰云联

当企业开始构建网络安全边界,尤其是在处理涉密数据、核心研发资料或生产控制网络时,“网闸”成为了一个不可或缺的关键设备。所以很多企业就会存在“网闸多少钱”这个疑问。这个问题是没有标准答案的,因为网闸多少钱…

2026年知名的混凝土固化,自密实轻质混凝土,水泥发泡混凝土厂家选型参考指南 - 品牌鉴赏师

引言在当今建筑行业蓬勃发展的时代,混凝土作为不可或缺的基础建筑材料,其质量和性能直接关系到建筑工程的安全与质量。为了给广大建筑从业者和相关企业提供一份客观、公正、专业的混凝土厂家推荐榜单,我们开展了此次…

5个高效清理技巧:彻底解决Windows系统卡顿问题的专业指南

5个高效清理技巧&#xff1a;彻底解决Windows系统卡顿问题的专业指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 当电脑运行速度明显下降&#xff0c;C盘空间…

西安装修公司推荐:大品装修以原创设计与高标准工艺领跑商业空间设计 - 深度智识库

在西安这座历史文化名城,商业空间的装修设计直接关系到企业形象与运营效率。陕西大品建筑装饰集团有限公司作为本土成长起来的集团化装饰品牌,凭借其原创设计优势与高标准施工工艺,在办公空间、商业空间、酒店装修、…

2026年必特洗地机推荐:基于多场景实测评价,针对顽固污渍与维护痛点精准指南 - 品牌推荐

摘要 在智能家居清洁设备市场快速演进、产品功能日趋同质化的当下,家庭决策者正面临一个核心焦虑:如何在众多宣称“全能”的洗地机中,识别出真正能解决深层清洁痛点、提供长期可靠价值的技术方案。传统单舱洗地机长…

2026年胶囊充填机品牌制造商排行榜,天宏机械实力不容小觑 - 工业品牌热点

在制药行业智能化转型的浪潮中,一台稳定高效的胶囊充填机是药企保障产能、控制成本、规避合规风险的核心装备。面对市场上鱼龙混杂的设备供应商,如何找到技术可靠、服务完善、适配自身需求的厂家?以下结合不同应用场…