源程序:
#include<iostream.h>
class Clock //时钟类声明
{
public: //外部接口
Clock(int NewH=0, int NewM=0, int NewS=0);
void ShowTime();
Clock& operator ++(); //前置单目运算符重载
Clock operator ++(int); //后置单目运算符重载
private: //私有数据成员
int Hour, Minute, Second;
};
Clock::Clock(int NewH, int NewM, int NewS)
{
if (0<=NewH && NewH<24 &&0<=NewM && NewH<60 &&0<=NewS && NewS<60)
{
Hour=NewH;
Minute=NewM;
Second=NewS;
}
else
cout << "Tine error!"<<endl;
}
void Clock::ShowTime()
{
cout << Hour <<":"<< Minute<<":"<<Second<<endl;
}
Clock& Clock::operator ++() //前置单目运算符重载函数
{
Second++;
if(Second>=60)
{ Second=Second-60;
Minute++;
if(Minute>=60)
{ Minute=Minute-60;
Hour++;
Hour=Hour%24;
}
}
return *this;
}
Clock Clock::operator ++(int) //后置单目运算符重载
{
Clock old=*this;
++(*this);
return old;
}
void main()
{
Clock myClock(23,59,59);
cout<<"First time output:";
myClock.ShowTime();
cout<<"Show myclock++:";
(myClock++).ShowTime();
cout<<"Show ++myclock:";
(++myClock).ShowTime();
}
分享到:
相关推荐
### 两个二维数组相加与相减:使用成员函数重载运算符“+”和“-” 在C++中,运算符重载是一种强大的特性,它允许程序员改变内置运算符的行为,使其适用于自定义类型(如类或结构)。本文将详细介绍如何通过成员...
我们可以在 matrix 类中设立私有数据成员 r 和 c,并将存放矩阵数据的 mem 设为二维动态数组,且设立相应的二参构造函数,负责分配该 mem 动态数组用于存放矩阵数据。 ```cpp class matrix { int r, c; // r 行 c ...
在C/C++中,有两种类型的自增运算符:前置++(++a)和后置++(a++)。这两种运算符的主要区别在于它们对变量的值的影响顺序。前置++会先将变量的值加1,然后返回新的值,而后置++会先返回变量的原值,然后将变量的值...
请定义一个Point类,将前置++和后置++运算符重载为成员函数,实现成员变量m_x和m_y的加一操作 同时重载流插入运算符,实现对Point类对象的格式化输出。例如 Point p; cout; 输出结果为: (0,0) 请根据给定的main...
总的来说,C++的运算符重载使得我们能够为自定义类型设计符合自然语言习惯的运算行为,成员函数和友元函数提供了实现这一目标的灵活工具。通过了解和掌握这两种方法,开发者可以编写出更加直观、易于理解的代码。
这里,我们将深入探讨前置`++`、后置`++`、前置`--`和后置`--`这四个增量和减量运算符的重载,并通过实例分析如何在`main.cpp`文件中实现它们。`README.txt`文件可能包含有关代码的额外说明和指导。 前置`++`和后置...
用成员函数重载运算符“+”和“-”,将两个二维数组相加和相减。要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。
在C++编程语言中,运算符重载是其特性之一,允许我们为现有的运算符赋予新的含义,以便在自定义类型上使用。本教程通过一个DEMO深入探讨...通过实践和调试这些代码,你将更好地掌握C++中的运算符重载和成员函数的使用。
本主题将深入探讨如何通过重载加减法运算符来实现复数类的成员函数。复数类是用于表示复数(包括实部和虚部)的数据结构,而加减法运算符重载则是为了使复数对象能够像基本数据类型一样进行数学运算。 首先,我们...
复数类,重载运算符实现 +,-,*,/ , >>等 运算符
1.设计一个2行3列的矩阵类Matrix,定义其构造函数、输入成员函数input和输出成员函数display,重载运算符“+”,求两个矩阵的加法。2.定义一个字符串类String,用来存放不定长的字符串,重载运算符“= =”、“<”...
**【问题描述】** 请定义一个复数类,将+/-运算符重载为成员函数,实现复数与复数的加减及复数与浮点数的加减。 请根据给定的main函数,设计Complex类。
用c++设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求两个三角形对象的面积之和。
在JavaScript编程语言中,一元运算符`i++`和`++i`是常见的自增操作,它们在处理变量的值时有不同的行为和顺序。理解这两种运算符的区别对于编写高效和无误的代码至关重要。 首先,`i++`称为后置自增运算符。它的...
在这个例子中,"运算符并非复数类的一部分,而是作为全局函数定义的,但它被声明为复数类的友元,以便能够访问类的私有和保护成员。 此外,运算符重载时要注意以下几点: - 运算符重载不能改变运算符的优先级和结合...
对于后置运算符“++”和“--”,如果要将它们重载为类 X的成员函数,用来实现 xobj++和 xobj--就相当于函数调用 xobj.operator++(0)和 xobj.operator--(0)。对于双目运算符 D,如果要重载为类 X 的成员函数,实现...
C++运算符重载函数作为类成员函数和友元函数 C++运算符重载函数是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。运算符重载实质上是函数的重载。重载运算符的...
本文将详细探讨如何通过重载运算符++、输入输出流以及其他一些常见的运算符,来增强类的功能性和表达性。我们将通过实例代码来阐述这些概念。 首先,让我们了解什么是运算符重载。运算符重载并不创建新的运算符,...