在C++中,可以利用构造函数将一个int型变量转换为一个类对象,如CMyClass aClass(5);
有人便会问,可以进行相反的转换吗?例如将一个类对象转换为一个int值, int nTemp=aClass;
C++可以实现这一需求.但不是构造函数.构造函数只能用于某种类型到类类型的转换.要进行相反的转换,则需要使用重载操作符函数--转换函数来实现.
转换函数是用户定义的强制类型转换,如果定义了从CMyClass到int的转换函数,就可以使用下面的转换:
CMyClass aClass(5);
int nTemp=aClass;
那么,如何创建转换函数呢?要使用如下形式:
operator typeName();
typeName 指出了要转换成的类型.因此不需要返回值.转换函数是类方法意味着,它需要通过类对象来调用,从而告知函数要转换的值,因此,函数不需要参数.
注意一下三点:1 转换函数必须是类方法.2 转换函数不能返回指定类型. 3 转换函数不能有参数.
此例子中,转换为int类型的类转换函数原型为: operator int();
实现为CMyClass::operator int()
{
return m_nValue;
}