c++学习--类型重载

c++学习

–类型重载

环境:
codeblocks:17.12
系统:windows10 家庭版

正常情况下,同一个类型变量只能给同一个类型变量赋值,如果想要夸数据类型赋值,这个时候就需要类型重载,我们用成员函数的方式实现
我们定义一个Time类,然后有

hour   小时
minute 分
second 秒

然后我们将他赋值给float类型,让他将所有时间都换成秒。
格式如下

声明:
    operator <类型>()
函数体:
    <类名>::operator <类型>()
    {
    }

实例代码

#include
#include
#include

using namespace std;

class Time
{
private:
    int hour, minute,second;
public :
    Time(int hour, int minute, int second);
    void print();
    operator float();
};
Time::Time(int hour,int minute, int second)
{
    this->hour = hour;
    this->minute = minute;
    this->second = second;
}
void Time::print()
{
    cout <<"小时:" << this->hour << endl;
    cout <<"分:" << this->minute << endl;
    cout <<"秒:" << this->second << endl;
}

Time::operator float()
{
    float tamp;
    tamp = hour * 3600 + minute * 60 + second;
    return tamp;
}


int main(void)
{
    Time t1(23,30,55);
    t1.print();
    float f = t1;
    cout << f;
    getchar();
    return 0;
}

结果

可以看到,float型的f成功赋值


 上一篇
c++学习--运算符重载 c++学习--运算符重载
c++学习–运算符重载 环境:codeblocks:17.12系统:windows10 家庭版 输入输出运算符重载,只能重载成友元函数 输出运算符重载通常情况下,输出符只能直接输出标准类型的值,而我们自定义类型是不能直接输出的cout
2019-04-18
下一篇 
  目录