请问 explicit 是干嘛的

Nepton 2001-09-18 06:46:30
请问下面的explicit 是干嘛的?谢谢。


class CTest
{
public:
explicit CTest(int x):nItem(x){}
private:
int nItem;
};

...全文
53 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqchen79 2001-09-18
  • 打赏
  • 举报
回复
比方说有这么个函数:
void foo(CTest test);
然后你这么调用: foo(5);
如果没有explicit的话,编译器可以通过CTest(int x)隐式的把int转换成CTest,但这也许不是你所希望的语义。如果加了explicit的话,编译器就不会做这种隐士转换了,而是报错。
Nepton 2001-09-18
  • 打赏
  • 举报
回复
这是个很简单的问题,以前我在C++基础上看到过,只是现在想不起来,请大虾抽空指点
谢谢

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧