conversionfunction(转换函数):
转换函数只能作为类的成员函数,它可以将一种类型转换成另外一种类型(可以是自定义类型)。转换函数没有返回类型,转换函数的基本形式是operator typename(),typename就是返回的数据类型。转换函数通常会加上const 因为不会改变类的成员变量的值。
转换函数格式:
operate type()
{
//do something
return;
}
转函数作用:将对象转换成别的数据类型并返回转换后的值
1: 转换函数这只能是是以类的成员函数出现,
2: 它没有参数
3: 不用指定返回类型(返回的数据必须是 type 所以不用再特意指定)
示例:
conversionfunction.h
#ifndef __CONVERSION_H_
#define __CONVERSION_H_
#include <stdio.h>
struct{
int num;
}test;
class FractionDes
{
public:
explicit FractionDes(int iSour):m_Des(iSour)
{}
public:
int getValue()const
{
return m_Des;
}
private:
int m_Des;
};
class Fraction
{
public:
Fraction()=default;
explicit Fraction(const int iNum,const int iDen=1):m_iNumerator(iNum),m_iDenoninator(iDen)
{
}
operator double()const
{
return (double)(m_iNumerator/m_iDenoninator);
}
operator FractionDes()const
{
return (FractionDes)(m_iNumerator/m_iDenoninator);
}
private:
int m_iNumerator;
int m_iDenoninator;
};
#endif
//转换函数没有返回类型 通常加const
conversionfunction.cpp
#include "conversionfunction.h"
#include <iostream>
using namespace std;
int main()
{
Fraction a(10,2);
double f = 4.1+a;
cout<<"f = "<<f<<endl;
FractionDes test = a;
cout<<"test = "<<test.getValue()<<endl;
return 0;
}
编译运行