时间:2014.03.10
地点:基地二楼
------------------------------------------------------------------------------------
一、简述
C++允许编译器在不同类型之间执行隐式转换,和C一样,char可默默转换为int,short可默默转换为double,正因为这种隐式转换,你可以将short类型交给一个期望获得double类型的函数来处理,这和传统的C风格一脉相承。但可怕的是C++还可将int转换为short,以及将double转换为char等,这可能导致信息丢失。而在我们自己设计类的时候,也可以选择提供适当的函数,供编译器拿来做隐式转换。
------------------------------------------------------------------------------------
二、隐式转换方式
1.单变量构造函数:如果构造函数声明了单一参数,或者有多个参数但除第一个参数不做要求外都有默认值可执行隐式转换:
class Name{
public:
Name(const string& s); //可把string转换为Name类型
.....
};
class Rational{
public:
Rational(int numerator0,int denominator=1);
...
};