不同数据类型间的转换的分类:
一、转换构造函数——定义在目标类型的类中。
1、类之间的转换构造函数
2、内置类型的转换构造函数
二、类型转换函数——定义在源类型的类中。
举例代码:
一、转换构造函数
1、类之间的转换构造函数
//将类B的对象转换为类A的对象
#include <iostream>
using namespace std;
class B
{
public:
int x;
double y;
};
class A
{public:
A(){}
A(B& t){ m=t.x; n=t.y; } //类之间的转换构造函数 ,和复制构造函数有些类似
int m;
double n;
};
int main ()
{
B ob2; ob2.x = 4;
A ob1(ob2); //这里调用了转换构造函数
cout<<ob1.m<<endl;
return 0;
}
2、内置类型的转换构造函数
//将内置类型转换为类的对象
#include <iostream>
using namespace std;
class A
{
public:
A(){}
A(double r) {n=r;} //内置类型的 转换构造函数
int m;
double n;
};
int main ()
{
A ob1;
ob1 = 3.35; //这里调用了转换构造函数
cout<<ob1.n<<endl;
}
二、类型转换函数
//将类的对象转换为内置类型
#include <iostream>
using namespace std;
class A
{
public:
A(){}
A(int a,double b):m(a),n(b){}
operator double () { return n; }
int m;
double n;
};
int main ()
{
A ob1 (2, 3.4);
double m=(ob1+1.1);
cout<<m<<endl;
}
浙公网安备 33010602011771号