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代码-结构体运算符重载”的主题中,我们将深入探讨如何在C++中对结构体进行运算符重载。 首先,我们需要了解运算符重载的基本语法。在C++中,我们可以使用函数成员或者友元函数来重载运算符。例如,如果...
然而,本文的重点是探讨`struct`中的运算符重载,这是一个强大的特性,允许我们自定义运算符的行为以适应特定的数据类型。 运算符重载并不创建新的运算符,而是为已存在的运算符赋予新的意义或功能,使得我们可以...
在C++编程语言中,运算符重载是一个关键特性,它允许我们为已存在的运算符赋予新的含义,以便在自定义类型上使用。这使得我们可以按照与内置类型类似的方式操作自定义类对象,提高代码的可读性和简洁性。本课件主要...
### C++运算符重载详解 #### 一、前言 C++允许用户自定义类或结构体,并为这些类型重载内置运算符,从而使得这些类型能够像内置类型一样使用标准运算符进行操作。本篇文章将通过三个具体的示例来深入探讨C++中的...
在C++编程语言中,运算符重载是其特性之一,允许我们为现有的运算符赋予新的含义,以便在自定义类型上使用。本教程通过一个DEMO深入探讨如何在C++中实现运算符重载以及如何利用成员函数来完成这一过程。 首先,理解...
首先,运算符重载并不意味着创建新的运算符,而是为已有的运算符定义在特定类或结构体上的行为。例如,我们可以让"+"运算符用于两个自定义对象的相加,而不是仅仅限于基本数据类型的加法。这极大地提高了代码的...
运算符重载并不创建新的运算符,而是让现有的运算符能够作用于类对象或者结构体,使得代码更加简洁易读。 在C++中,我们可以重载的运算符包括但不限于:+、-、*、/、%、、>>、=、==、!=、<、、>、>=、++、--、->、...
运算符重载使得用户自定义类型(如类或结构体)能够像内置类型一样支持各种运算符。例如,你可以让你创建的类能够支持加法、减法、乘法、除法等运算。这对于提高代码的可读性和效率非常有帮助,因为你可以用更接近于...
在C++编程语言中,运算符重载是一项非常重要的特性,它允许我们对自定义类型(如类或结构体)中的数据进行数学运算、逻辑运算等操作时,使用类似于内置类型的运算符。通过运算符重载,我们可以使代码更直观、更易于...
在C++编程语言中,运算符重载是一种强大的特性,允许程序员为自定义数据类型赋予特定的运算行为,使得操作自定义类型就像操作内置类型一样自然。运算符重载是C++面向对象特性的一部分,它使得代码更加清晰,易于理解...
运算符重载是C#(以及其他面向对象语言)中的一项特性,它允许程序员为自定义类型赋予特定的运算符含义,使得使用这些类型的代码更加直观和简洁。在讲解运算符重载之前,我们先理解一下自定义类型的概念。自定义类型...
在C++中,我们可以通过重载运算符来实现结构体的排序。例如,我们可以重载小于号(<)和大于号(>)运算符,以便实现升序和降序排序。 在代码中,我们首先定义了一个名为AssessTypeInfo的结构体,该结构体包含三个...
这个课件主要涵盖了C++的几个核心概念和技术,包括类和对象、数值输入输出、运算符重载、继承与派生以及指针和数组。下面将详细阐述这些知识点。 1. **类和对象**:在C++中,类是数据和操作数据的方法的集合,是...
在C++中,运算符重载是一种特殊形式的函数重载,允许我们为用户定义的类型(例如类或结构体)提供已有的运算符行为。通过这种方式,我们可以使自己的类型支持如`+`、`-`、`*`等标准运算符,甚至是一些特殊的运算符如...
运算符重载允许开发者为自定义类型(如类或结构体)定义特定的运算符行为,这不仅增强了代码的可读性,还提升了开发效率。然而,为了正确有效地使用运算符重载,理解其工作原理及限制条件至关重要。 #### 正文 ###...
尽管C语言不允许直接重载运算符,但我们可以通过定义结构体或联合体(union),然后为其编写成员函数的方式来间接实现运算符重载的效果。例如,对于一个简单的复数类,我们可以这样实现加法运算: ```c typedef ...
在C++编程语言中,为了提高代码的灵活性和可读性,提供了运算符重载这一特性。然而,并非所有的运算符都可以被重载。本文将详细介绍那些不可重载的运算符以及自增(`++`)和自减(`--`)运算符的重载规则。 #### 不可...