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;
}
附上完整程序代码。。。
#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;
}