1、变换构造函数
我们把只有一个参数的构造函数称为变换构造函数。
2、变换函数
和变换构造函数不同,变化函数用于将对象中的一个值返回出来。
变换对象一般采用如下格式:
operator 变换的类型()
{
return 返回值;
}
变换函数最基础的使用方法:
#include<iostream>
using namespace std;
class test
{
int x;
public:
test():x(0)//缺省构造函数
{
}
test(int a):x(a)//变换构造函数
{
}
operator int()//变化函数
{
return x;
}
void disp()
{
cout<<x<<endl;
}
};
int main()
{
test p(1234);//调用变换构造函数
cout<<"p=";p.disp();
int q=p;//调用变换函数
cout<<"q="<<q<<endl;
}
/*result:
p=1234
q=1234
*/
在变换函数中也可以进行一些简单的运算:
#include<iostream>
using namespace std;
class test
{
int x;
int y;
public:
test():x(0),y(0)//缺省构造函数
{
}
test(int a):x(a)//变换构造函数
{
}
test(int a,int b):x(a),y(b)//构造函数
{
}
test(const test &s)//复制构造函数
{
x=s.x;y=s.y;
}
operator long()//变换函数
{
return (x*10000+y);
}
void disp()
{
cout<<"x="<<x<<" "<<"y="<<y<<endl;
}
};
int main()
{
test p(1234,5678);
cout<<"p:";p.disp();
long q=p;
//也可以写成:long q;q=(long)p;
//强制类型的显式变换
//也可以写成:long q;q=long(p);
//函数型的显式变换
cout<<"q="<<q<<endl;
}
/*result:
p:x=1234 y=5678
q=12345678
*/
变换函数主要用于返回类中的成员函数,但变换函数本身也可以定义变量并可以包含多个语句,也可以对数据成员进行更改。变换函数不能有参数而且变换函数中必须含有return语句。