社区
C++ 语言
帖子详情
在什么情况下应该使用explicit?
yxfly
2007-04-24 09:49:25
explicit的作用是防止隐式的使用拷贝函数,在什么情况下,我们需要这个关键字呢?能否举个例子呢?谢谢!
...全文
252
10
打赏
收藏
在什么情况下应该使用explicit?
explicit的作用是防止隐式的使用拷贝函数,在什么情况下,我们需要这个关键字呢?能否举个例子呢?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
todototry
2007-04-24
打赏
举报
回复
错误 1 error C2664: 'fun' : cannot convert parameter 1 from 'int' to 'A' d:\myproject\vs2005\testplate\testplate\testplate.cpp 2096
==========================================
explicit的作用
todototry
2007-04-24
打赏
举报
回复
这样可以编译,你换新的编译器看看,vs2005
lidongri
2007-04-24
打赏
举报
回复
class A
{
public:
explicit A(int i){size = i;}
private:
int size;
};
void fun(A a)
{}
int main()
{
fun(3);
return 0;
}
--
可以编译
explicit的目的是
A b = 3;不成功
如果没有加的话就会成功
yxfly
2007-04-24
打赏
举报
回复
我主要想知道,为什么需要这个关键字?用了它的主要目的是什么?
yxfly
2007-04-24
打赏
举报
回复
todototry(来csdn,学会扯淡了...) ( ) 信誉:100 Blog 加为好友 2007-04-24 10:04:21 得分: 0
class A
{
public:
explicit A(int i){size = i;}
private:
int size;
};
void fun(A a)
{}
int main()
{
fun(3);
return 0;
}
这时则不能编译因为阻止转了
============================================================================
这样能编译吧
改成下面的情况发现编译错误的:
int main()
{
fun(); //Error
return 0;
}
asdf511
2007-04-24
打赏
举报
回复
建立数值类型
todototry
2007-04-24
打赏
举报
回复
class A
{
public:
explicit A(int i){size = i;}
private:
int size;
};
void fun(A a)
{}
int main()
{
fun(3);
return 0;
}
这时则不能编译因为阻止转了
todototry
2007-04-24
打赏
举报
回复
class A
{
public:
A(int i){size = i;}
private:
int size;
};
void fun(A a)
{}
int main()
{
fun(3);
return 0;
}
编译成功,因为3隐式转A类型的对象
todototry
2007-04-24
打赏
举报
回复
防止单参构造函数隐式转换
taodm
2007-04-24
打赏
举报
回复
到<Effective C++>里搜索explicit即可。
C++:
explicit
的适用场合以及为什么要
使用
explicit
c++,
explicit
C++
explicit
关键字详解
首先, C++中的
explicit
关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认
情况
下即声明为implicit...
什么是
explicit
类型?
C++中的
explicit
...所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。 这样看起来好象
explicit
关键字的作用及其用法
一、
explicit
作用: 在C++中,
explicit
关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型...二、
explicit
使用
注意事项:
explicit
关键字只能用于类内部的构造函数声明上。 explic
C++中,
explicit
解释和用法
在C++中,
explicit
是一个关键字,用于修饰类的构造函数,指示编译器不要执行隐式类型转换。这意味着如果构造函数被声明为...这种隐式类型转换在某些
情况
下可能会导致预期之外的行为,因此可以
使用
explicit
来阻止它。
C++ 语言
64,683
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章