• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

134、隐式转换,如何消除隐式转换?

开发技术 开发技术 6小时前 2次浏览

1、C++的基本类型中并非完全的对立,部分数据类型之间是可以进行隐式转换的。所谓隐式转换,是指不需要用户干预,编译器私下进行的类型转换行为。很多时候用户可能都不知道进行了哪些转换

2、C++面向对象的多态特性,就是通过父类的类型实现对子类的封装。通过隐式转换,你可以直接将 一个子类的对象使用父类的类型进行返回。在比如,数值和布尔类型的转换,整数和浮点数的转换等。 某些方面来说,隐式转换给C++程序开发者带来了不小的便捷。C++是一门强类型语言,类型的检查是 非常严格的。

3、 基本数据类型 基本数据类型的转换以取值范围的作为转换基础(保证精度不丢失)。隐式转换发生 在从小->大的转换中。比如从char转换为int。从int->long。自定义对象 子类对象可以隐式的转换为父 类对象。

4、 C++中提供了explicit关键字,在构造函数声明的时候加上explicit关键字,能够禁止隐式转换。

5、如果构造函数只接受一个参数,则它实际上定义了转换为此类类型的隐式转换机制。可以通过将构 造函数声明为explicit加以制止隐式类型转换,关键字explicit只对一个实参的构造函数有效,需要多个 实参的构造函数不能用于执行隐式转换,所以无需将这些构造函数指定为explicit。


程序员灯塔
转载请注明原文链接:134、隐式转换,如何消除隐式转换?
喜欢 (0)