结构体运算符重载
2012-05-25 17:11
295 查看
1、定义结构体
2、重载IO输出操作,在结构体内部将输入操作的重载定义为友元函数重载
在结构体外部进行具体定义
3、重载结构体的“=”操作符(在结构体内部)
4、重载结构体的“+”操作符(在结构体内部)
5、重载结构体的"-"操作符(在结构体内部)
6、重载结构体的“*”操作符(在结构体内部)
7、定义函数模板格式的输出函数
8、进行运行测试。。。
附上完整程序代码。。。
The end...
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...
相关文章推荐
- 结构体运算符重载
- 结构体运算符重载
- 九度OJ 教程31 包含结构体的优先队列及运算符重载之《搬水果》
- 利用运算符重载将结构体排序--uva11729
- 结构体运算符重载
- C++STL系列 结构体运算符重载及优先队列的使用
- 结构体运算符重载
- 结构体运算符重载
- USB开发中使用到的一些结构体
- 数组、结构体、指针4
- 含有指针成员的结构体使用总结
- 结构体-杜七同学个人信息
- 运算符重载之->
- 10 结构体和类 - —— 《Swift3.0 从入门到出家》
- 结构体里面的.value
- Swift语法基础:5 - Swift的枚举和结构体
- 03.Swift 结构体
- Linux内核代码 结构体初始化【转】
- PE文件详解:资源结构体
- C++中结构体与类的区别(结构不能被继承,默认是public,在堆栈中创建,是值类型,而类是引用类型)good