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成功赋值