现在的位置: 首页 > 综合 > 正文

C++转换函数

2019年03月19日 ⁄ 综合 ⁄ 共 501字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.