结构体运算符重载
来源:互联网 发布:java如何调用api接口 编辑:程序博客网 时间:2024/04/30 17:15
1、定义结构体
struct
Currency
{
int
Dollar;
int
Cents;
}
2、重载IO输出操作,在结构体内部将输入操作的重载定义为友元函数重载
friend
ostream &operator<<(ostream &out,Currency value);
在结构体外部进行具体定义
ostream& operator<<(ostream &out,Currency value)
{
out<<
"The dollar = "
<<value.Dollar<<
" and The Cents = "
<<value.Cents<<endl;
return
out;
}
3、重载结构体的“=”操作符(在结构体内部)
Currency& operator=(Currency& value)
{
Dollar = value.Dollar;
Cents = value.Cents;
return
*
this
;
}
4、重载结构体的“+”操作符(在结构体内部)
Currency& operator+(Currency& value)
{
Dollar += value.Dollar;
Cents += value.Cents;
return
*
this
;
}
5、重载结构体的"-"操作符(在结构体内部)
Currency &operator-(Currency& value)
{
Dollar = Dollar - value.Dollar;
Cents = Cents - value.Cents;
return
*
this
;
}
6、重载结构体的“*”操作符(在结构体内部)
Currency& operator*(Currency& value)
{
Dollar *= value.Dollar;
Cents *= value.Cents;
return
*
this
;
}
7、定义函数模板格式的输出函数
template
<
typename
T>
void
DisplayValue(T value)
{
cout<<value<<endl;
}
8、进行运行测试。。。
Currency c1;
c1.Dollar = 10;
c1.Cents = 5;
DisplayValue(c1);
Currency c2,c3;
c2 = c1;
c3= c1+c2;
DisplayValue(c3);
附上完整程序代码。。。
#include "stdafx.h"
#include <iostream>
using
namespace
std;
template
<
typename
T>
void
DisplayValue(T value)
{
cout<<value<<endl;
}
struct
Currency
{
int
Dollar;
int
Cents;
Currency& operator=(Currency& value)
{
Dollar = value.Dollar;
Cents = value.Cents;
return
*
this
;
}
Currency& operator+(Currency& value)
{
Dollar += value.Dollar;
Cents += value.Cents;
return
*
this
;
}
Currency &operator-(Currency& value)
{
Dollar = Dollar - value.Dollar;
Cents = Cents - value.Cents;
return
*
this
;
}
Currency& operator*(Currency& value)
{
Dollar *= value.Dollar;
Cents *= value.Cents;
return
*
this
;
}
friend
ostream &operator<<(ostream &out,Currency value);
};
ostream& operator<<(ostream &out,Currency value)
{
out<<
"The dollar = "
<<value.Dollar<<
" and The Cents = "
<<value.Cents<<endl;
return
out;
}
int
_tmain(
int
argc, _TCHAR* argv[])
{
Currency c1;
c1.Dollar = 10;
c1.Cents = 5;
DisplayValue(c1);
Currency c2,c3;
c2 = c1;
c3= c1+c2;
DisplayValue(c3);
system
(
"pause"
);
return
0;
}
The end...
- 结构体运算符重载
- 结构体运算符重载
- 结构体运算符重载
- 结构体运算符重载
- 结构体中运算符的重载
- 结构体中运算符的重载
- 利用运算符重载将结构体排序--uva11729
- 友元类 运算符重载 new结构体数组
- 结构体 重载运算符模板 + 具体数据类型
- 结构(公有类)的运算符重载
- c/c++中如何写结构体的 构造函数 和 重载运算符?
- 结构体作为map的key或放入set中,需要重载<运算符
- 结构体作为map的key或放入set中,需要重载<运算符
- C++结构体:默认构造函数,复制构造函数,重载=运算符
- C++重载加号运算符实现两个结构体的相加
- C++结构体:默认构造函数,复制构造函数,重载=运算符
- 结构体如果没有重载比较运算符,不能直接进行比较
- set容器中放入结构体时需要重载运算符<
- Windows Driver Foundation - KMDF 内核模式驱动框架结构 第一部分
- 单步调试 VC6.0
- Windows Driver Foundation - KMDF 内核模式驱动框架结构 第二部分
- Windows Driver Foundation - KMDF 内核模式驱动框架结构 第三部分
- poj 2871 A Simple Question of Chemistry
- 结构体运算符重载
- Windows Driver Foundation - KMDF 内核模式驱动框架结构 第四部分
- Json数据格式解析示例 (语言:Java 包:org.json.jar)
- flash读取XML文件
- Windows Driver Foundation - KMDF 内核模式驱动框架结构 第五部分
- Android ApiDemos示例解析(27):App->Notification->Notifying Service Controller
- Discuz X2安装实录
- 无缝漫游 Seamless Roaming
- WLAN Roaming - the basics Even if you keep the same IP address, things get complicated.