conversionfunction(转换函数)/c++

本文介绍了C++中的转换函数,这种特殊类型的成员函数用于将类的对象转换为其他类型。转换函数没有指定的返回类型,但会隐式地返回转换后的类型。示例中展示了如何定义和使用转换函数,包括将`Fraction`类的对象转换为`double`和自定义类型`FractionDes`。在主函数中,转换函数被用来在表达式中直接进行类型转换。
摘要由CSDN通过智能技术生成

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

编译运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值