C++:类型数据间的转换(2)
2.3转换构造函数的使用
使用转换构造函数将一个指定的数据转换为类对象的方法:
【1】先声明一个类(如上面的Complex);
【2】在这个类中定义一个只有一个参数的构造函数,参数的类型是需要转换的类型,在函数体中指定转换的方法;
【3】在该类的作用域内可以用以下形式进行类型转换,
类名(指定类型的数据)
2.4一个实例
【1】提出问题
下面给出一个复数类Complex,提供了2种构造函数。
class Complex{
public:
Complex(double r,double i){//用于初始化的构造函数
real=r;
imag=i;
}
Complex(double r){//转换构造函数
real=r;
imag=0;
}
private:
double real,imag;
};
int main(){
Complex c(0,0); //使用初始化构造函数
c=c+2.5;error: no match for 'operator+' in 'c + 2.5e+0'
这里报错,意思是+号运算符没有被重载以用于Complex类对象与double之间的操作。
【2】使用重载加运算符的方式修复之
class Complex{
public:
…
Complex operator+(double);//声明重载运算符+
…
};
Complex Complex:: operator+(double r){
return Complex(real+r,imag);
}
int main(){
Complex c(0,0);
c=c+2.5; //ok
- 上一篇:rdbuf的使用
- 下一篇:C++:虚函数与抽象类





