【C++关键字——explicit显式】

怎么理解呢?

就好比:

int a=3.14;

cpp 复制代码
	base b(10);     //显式
	b = base(10);   //显式
	b = 12;         //隐式,加了explicit就报错

对于12,他会先去创建一个base类型的临时对象:base(12),运行构造函数,然后把临时对象拷贝给b;

临时对象 与 const 、&

const被设计为读对象的值,所以绑定到临时对象也不会出现通过&改变临时对象的值(因为很快就会被销毁)

cpp 复制代码
	base& b = 10;   //err  类似于:不能把右值绑定到左值

	const base& a = 10;    //ok

引入explicit:

也就不会产生临时变量了。

对于多参构造:

explicit同样适用,const&,&都和上面一样

需要注意设置默认值时,从左往右的缺省规则

{}:聚合初始化

cpp 复制代码
class base {
public:
	base(int a);
	base(int a, int b);

};

int main()
{
	base b = 10 ;    
	base b = { 1,2 };
	return 0;
};

:

相关推荐
总要学点什么22 分钟前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
ShineWinsu2 小时前
对于Qt:QRadioButton常见属性以及QButtonGroup的解析
数据库·c++·qt·microsoft·gui·qradiobutton·qbuttongroup
傲世仙尊2 小时前
多态-虚表才活到运行期符号表早已消失
c++
开开心心_Every2 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c2 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
是main不是漫2 小时前
【双指针——移动零】数组划分类题目的入门基石
c++·算法
吴卫斌2 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
·present·2 小时前
CSAPP(Bomb lab)
c语言·c++
王老师青少年编程3 小时前
2026年信奥赛c++普及组csp-j第二轮复赛真题
c++·真题·csp·信奥赛
超级架构师3 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core