一、引言
在语句中手动指明转换的目的类型的操作,叫显式类型转换,比如 double a = (double)2 / 1
,在该语句中,我们手动指明了 2 要转换成 double
类型;没有指明转换的目的类型而自动进行的操作,叫隐式类型转换,比如 int b = 'M'
,在该语句中,字符 'M'
会自动转换成 int
类型。
在 C++ 中有一种类成员函数叫类型隐式转换函数,类型隐式转换函数包括两种,一种是转换构造函数,一种是隐式转换函数,前者能将一个其他类型转换为本类类型,后者则相反,能将一个本类类型转换成其他类型。两者的实例代码如下:
#include <iostream>
class Complex {
private:
double real_;
double imag_;
public:
Complex(double real, double imag)
: real_(real)
, imag_(imag) {
}
// 转换构造函数
Complex(double real)
: