zhiyinjixu

  博客园  :: 首页  ::  :: 联系 ::  :: 管理

不同数据类型间的转换的分类:

一、转换构造函数——定义在目标类型的类中。

       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;
}






















 

posted on 2011-11-14 15:55  zhiyinjixu  阅读(173)  评论(0)    收藏  举报