explicit和implicit关键字
来源:互联网 发布:今天双11网络怎么了 编辑:程序博客网 时间:2024/05/20 21:46
explicit和implicit关键字(转)
换了工作,不使用.net了,改用c++,很多c++基础知识本就不熟,再加上这么长时间没碰过,基本忘光了。C#中有explicit和implicit两个关键字,但c++中只有explicit一个关键字。
而且explicit在c++中使用范围还很窄,只能用来修饰类的构造函数。而且还只是在类的构造函数只有一个参数或有多个参数但仅有一个参数没有默认值的情况下explicit才有效。为什么要有这些限制呢?!因为explicit是来限制类的隐式转换,限制不必要的错误发生。如果有构造函数没有参数或多个参数没有默认值,本来就是不能进行隐式转换的。
看这个例子。
class C2 {
public:
int i;
explicit C2(int i ) // an explicit constructor
{ }
};
void f2(C2)
{
}
void g(int i)
{
f2(i); // C2558 //这里编译不通过,因为i不能隐式转换成C2,去掉explicit可以编译通过。
// f2(C2(i)); //不去掉explicit,用下面这种形式可以通过
}
关于c++的explicit关键字网上文章很多。不多说了。
- explicit和implicit关键字
- 关于关键字explicit 和 implicit
- C++中explicit关键字和implicit关键字的使用
- C++中explicit关键字和implicit关键字的使用
- 类型转换的关键字explicit、implicit 和 operator
- implicit和explicit
- explicit 和Implicit 区别
- explicit和implicit
- C# explicit implicit关键字、checked关键字
- explicit 和 implicit 简单应用
- explicit 和 implicit 简单介绍
- explicit 和 implicit 的含义?
- c#关键词implicit和explicit
- .net转换关键字:operator、explicit与implicit
- explicit & implicit
- C#-explicit 和 implicit 的含义
- C#-explicit 和 implicit 的含义?
- implicit(隐藏) intent 和 explicit(明确) intent
- eclipse下删除所有空行
- Android 磁盘管理 (3)
- jquery 插件 validate 总结
- 说说筑巢引凤
- 三种链接方式详解(HASH JOIN MERGE JOIN NESTED LOOP)
- explicit和implicit关键字
- 财付通能帮微信变现?这就是个笑话!
- linux硬件时间及系统时间
- Android 磁盘管理 (4)
- android 手电筒实现
- 进程---------进程描述符(2)
- .PHONY makefile中的伪目标
- CRF汇总
- 异常处理