社区
C语言
帖子详情
请问 explicit 是干嘛的
Nepton
2001-09-18 06:46:30
请问下面的explicit 是干嘛的?谢谢。
class CTest
{
public:
explicit CTest(int x):nItem(x){}
private:
int nItem;
};
...全文
61
2
打赏
收藏
请问 explicit 是干嘛的
请问下面的explicit 是干嘛的?谢谢。 class CTest { public: explicit CTest(int x):nItem(x){} private: int nItem; };
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qqchen79
2001-09-18
打赏
举报
回复
比方说有这么个函数:
void foo(CTest test);
然后你这么调用: foo(5);
如果没有explicit的话,编译器可以通过CTest(int x)隐式的把int转换成CTest,但这也许不是你所希望的语义。如果加了explicit的话,编译器就不会做这种隐士转换了,而是报错。
Nepton
2001-09-18
打赏
举报
回复
这是个很简单的问题,以前我在C++基础上看到过,只是现在想不起来,请大虾抽空指点
谢谢
C#面试题,C#面试经典题
C#面试题,C#面试经典题 C#面试题,C#面试经典题 C#面试题,C#面试经典题 C#面试题,C#面试经典题
C++
explicit
是干什么的
C++
explicit
是干什么的
explicit
explicit
关键字用于构造函数,防止隐式类型转换。使用
explicit
的构造函数不能用于自动转换类型,只能显式调用。它能防止因隐式类型转换引起的潜在错误,确保代码的明确性和可预测性。
explicit
对于防止多重构造函数的歧义和错误特别重要。
c++:
explicit
的作用
而当我们希望避免这种隐式的类型转换行为,防止可能引入的混淆或错误,就可以使用。具体到类的构造函数上,如果一个单参数构造函数未标记为。关键字用于修饰构造函数。当一个构造函数被声明为。时,编译器将禁止对该构造函数进行隐式类型转换。
C++构造函数前加上
explicit
关键字的作用
在构造函数前加上
explicit
关键字,表示该构造函数只能被显示调用,不能被隐式调用。 构造函数显示调用场景: T t1(value);//定义对象的同时,通过圆括号给出初值,显示调用构造函数 构造函数隐式调用场景: T t1=value;//定义对象的同时,通过等号给出初值,会隐式调用构造函数 fun(value);//函数传参,如果形参为类类型,会隐式调用构造函数 ...
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章