`
mybwu_com
  • 浏览: 178593 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

结构体运算符重载

 
阅读更多

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...

分享到:
评论

相关推荐

    cpp代码-结构体运算符重载

    cpp代码-结构体运算符重载

    Struct和运算符重载---详细

    详细介绍Struct和运算符的重载,详细见代码

    C/C++基础算法

    C/C++基础算法,适合初学者学习使用,压缩包内有一个.h文件和一个.c文件包含以下这些内容: //1.从两个数中得到较大的一个数 //2.从数组中中得到最大的一个数 //3....//4....复数的结构体与运算符重载

    C++结构体用法实例分析

    C++结构体提供了比C结构体更多的功能,如默认构造函数,复制构造函数,运算符重载,这些功能使得结构体对象能够方便的传值。 比如,我定义一个简单的结构体,然后将其作为vector元素类型,要使用的话,就需要实现...

    C++ PPT课件。。。。

    第一章 C++概述,第二章 数据类型、运算符与表达式,第三章 简单的输入输出,第四章 C++...第十章 构造函数和析构函数,第十一章 继承和派生类,第十二章 类的其它特性,第十三章 运算符重载,第十四章 输入/输出流类库

    字符数组类:用于更容易操作字符串的类,具有许多运算符和函数重载。-matlab开发

    运算符重载:==,~=,&lt;=,&gt;=,&gt;,&lt; -,*,/,\,', [], +,-, (), | 功能重载:显示,长度,上,下,strfind 其他功能:str、left、right、mid、padl、padr、padc、instr、repeat、replace、trim、ltrim、rtrim 例子==...

    定义和使用分数类fraction

    1.自定义分数类fraction,使用该类可以完成分数的输入、分数的加、减、乘、除二目运算和一目减运算、分数的约分操作、分数的倒数运算、对两个分数进行六种比较运算、以及对分数的... 定义类,运算符重载、类型转换。

    一个月挑战c++.chm

    一个月挑战c++.chm c++面向对象编程 类 构造 运算符重载 继承 结构体 封装

    C++程序设计

    C++程序设计 第1章 绪论 第9章 运算符重载 第2章 数据类型和表达式 第10章 静态成员与友元 第3章 控制语句 第11章 继承和派生类 第4章 函数 第12章 模板 第5章 数组 第13章 多态性与虚函数 第...

    Swift语言开发常见问题总结.docx

    运算符重载 自定义运算符以符合业务逻辑需求。 扩展(Extensions) 扩展系统或自定义类型的功能,无需修改原始源代码。 泛型(Generic Programming) 编写通用代码,避免重复,提高复用率。 函数类型 将函数作为...

    C++程序设计实验指导书

    C++课程实验指导书 目 录 第一部分 VC++开发环境 1 一、Visual C++6.0开发环境简介 1 二、控制台应用程序的创建 5 ...实验十四 运算符重载 67 实验十五 多态性 72 实验十六 模板 80 实验十七 I/O流 87

    长春理工大学计算机c++实验课题目及程序

    3-求和排序 4-结构体与参数默认 5-编写student类 6-深拷贝 7-多继承 8-运算符重载

    C++程序设计教程电子教案.ppt.rar

    一套非常好的C++教学电子教案,本人曾经在一所高职院校兼职代课,用的就是这套ppt。...9.运算符重载; 10.静态和派生类; 11.继承和派生类; 12.模板; 13.多态性和虚函数; 14.IO流; 15.异常处理;

    漂亮C++基础ppt

    基础学习者很有用!包括函数,数组指针,结构体,类class,继承派生,运算符重载,Vc创建windows等。

    小型c++图书管理系统

    数据结构线性表的案例。 有两个.cpp文件,分别是顺序表和链表的图书管理系统。 顺序表有插入、删除、排序、取值、输出。 ...因为判断结构体相等需要使用运算符重载,不太熟悉,所以没有写查找。

    CS125 程序设计-程序设计思想与方法-全套PPT

    12. ch11 运算符重载.ppt 13. ch12 组合与继承.ppt 14. ch13 泛型机制—模板(最终版).ppt 15. ch14 输入输出与文件.ppt 16. ch15 异常处理.ppt 17. ch16 容器和迭代器.ppt 18. ch17 关于计算机.ppt

    C# 基础学习案例源码-2023(32套源码案例)适合初学者学习使用

    C# 基础学习案例源码(32套源码案例) CS_01你好世界 CS_02输入和输出 CS_03异常捕获 ...CS核心_10_封装_运算符重载 CS核心_11_封装_内部类和分部类 CS核心_12_继承_继承的基本规则 CS核心_13_继承_里氏替换原则

Global site tag (gtag.js) - Google Analytics