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;}