zoukankan
html css js c++ java
再看C++(6)操作符重载
操作符重载看上去很神秘,其实也就是是个函数,只是为了方便人们自然思维的形式,使得用操作符重载这一东东,操作符的格式如下
operator
op(aument
-
list)
如加号 operator +(aument-list)
调用时则是调用这个函数。下面是对于C++Primer 的一个例子设计一个Time的类来进行时间的相加
class
Time
{
private
:
int
m_hours;
int
m_mins;
public
:
void
AddHour(
int
hour);
void
AddMin(
int
minute);
void
Reset(
int
hour,
int
min);
Time Sum(
const
Time
&
t)
const
;
Time();
void
Show()
const
;
virtual
~
Time();
}
;
实现
Time::Time()
{
m_hours
=
0
;
m_mins
=
0
;
}
Time::
~
Time()
{
}
void
Time::AddHour(
int
hour)
{
m_hours
+=
hour;
}
void
Time::AddMin(
int
minute)
{
m_mins
+=
minute;
m_hours
+=
m_mins
/
60
;
m_mins
%=
60
;
}
void
Time::Reset(
int
hour,
int
min)
{
m_hours
=
hour;
m_mins
=
min;
}
Time Time::Sum(
const
Time
&
t)
const
{
Time result;
result.m_hours
=
m_hours
+
t.m_hours;
result.m_mins
=
m_mins
+
t.m_mins;
result.m_hours
+=
result.m_mins
/
60
;
result.m_mins
%=
60
;
return
result;
}
void
Time::Show()
const
{
std::cout
<<
m_hours
<<
"
:
"
<<
m_mins
<<
std::endl;
}
现在要实现+操作符重载由于功能和sum是一样的,所以只需要把sum的名字换成operator+就行了,其他完全不用改
Demo
查看全文
相关阅读:
如何把自己的百度网盘的内容分享给别人
postman 中post方式提交数据
在ThinkPHP中,if标签和比较标签对于变量的比较。
Linux SVN搭建模式 规格严格
Redmine安装201209 规格严格
GBK 规格严格
MySQL分区优化 规格严格
Null 规格严格
Compiler 规格严格
UDP VS TCP 规格严格
原文地址:https://www.cnblogs.com/yukun/p/926648.html
最新文章
Jade template engine
实时更新的 JS框架 Meteor 发布 0.3.4|互联网技术与编程讨论区 FreeAir JavaScript Flash iOS
那些你希望在N年前就掌握的命令
Protovis
京东商城 现在有多少SKU ? 具体分布呢?
程序员5月杂志笔记
Jumping into NodeJS Meteor | Node.js News
事件设计概述
jsp、javascript打印九九乘法表
问题解决:SqlParameterCollection只接受非空的SqlParameter类型对象,不接受SqlParameter[]对象
热门文章
How to expand the BOM using ABAP?
String StringBuffer StringBuilder 三者的区别
Oracle数据库之SQLselect之二
java引入Android NinePatch技术的意义
[Go] 变量的声明和定义
#Sam有话说#谨慎,勿迷失
VB.NET概况图
RBAC基于角色的权限控制个人理解
Postman使用入门
如何把thinkphp 的url改为.html
Copyright © 2011-2022 走看看