1. 程式人生 > >運算子前置++和後置++過載為時鐘類的成員函式

運算子前置++和後置++過載為時鐘類的成員函式

源程式:

#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();
}

相關推薦

運算子前置++++過載時鐘成員函式

源程式: #include<iostream.h> class Clock //時鐘類宣告 { public: //外部介面 Clock(int NewH=0, int NewM

C++中的前置++

增量 後置 內置 因此 效率 要求 來講 註意 對象 在C++中進行操作符重載的時候,前置++返回的是一個引用。 這就設計到了對於基本變量進行前置操作時候的理解了。 例如,對於int類型變量,在進行前置++的時候,是會將i進行加1,然後返回i的引用。而i++是先創建一個i的

C語言中前置++++的區別

直接上程式碼 #include <stdio.h> int main(int argc, char* argv[]) { int a = 6; printf("%d\n",a++); //輸出為6,返回的是暫存器的值,而不是加後的

C/C++中自增自減的前置區別

       自增自減操作符在程式設計中很常用,都分為分為前置和後置兩種操作符,對於兩者的區別,C++ primer中有著如下說明:        1. 前置操作返回的結果為左值,後置操作返回的是右值,也就是說執行如下的程式碼都會編譯不通過: int i = 0, j

當執行緒函式C++成員函式

很多時候我們在C++多執行緒開發時,都會或多或少遇到執行緒函式為C++類中的某個成員函式,此時可能會發生什麼呢?你有可能會雜麼做呢? 接下來我就為大家總結一下我在這方面走過的一個歷程 1.問題一 記得我在之前在寫一個udp傳輸檔案的程式時,我就第一次遇到了

過載自增運算子前置自增++p自增p++)

如何過載增量運算子 ++ 和 --     運算子++和—有前置和後置兩種形式,如果不區分前置和後置,則使用operator++( )或operator--( )即可;否則,要使用operator++( )或operator--( )來過載前置運算子,使用operator+

C++回顧之前置++、++、不等號!及賦值運算子過載

        運算子過載的主要目的是為了讓類物件能像普通資料型別一樣能夠進行加減乘除,自加自減等操作,非常直觀方便。現在來回顧C++的自加減(分前置與後置)以及不等號非運算子,賦值運算子的過載。         1 ++過載         (1)前置++運算子的過載方式

前置操作符操作符(三十四)

C++ 前置 操作符 重載 我們之前在 C 語言中學習了前置 ++ 和後置 ++。應該知道 i++ 是將 i 的值作為返回值,i + 1;++i 是先 i+1,再返回 i 的值。那麽它們真的有區別嗎?我們來編程看看,在 VS 中進行反匯編,看看匯編代碼是怎樣處理的#includ

前置++過載

前言:這個問題糾結了好幾天,一直不能理解,今天被點醒了,發現自己大學真的學的太水了。這個坑我會在有一天看彙編的時候來填,放在這裡就是想告訴自己我還缺很多,還很不優秀。 這個程式其實就是寫++的前後過載。 過載的時候,方法名要一樣,但是引數型別和個數不一樣,返回值型別可以

C++筆記 第四十課 前置操作符操作符---狄泰學院

如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。 學習C++編譯環境:Linux 第四十課 前置操作符和後置操作符 1.值得思考的問題 下面的程式碼有沒有區別?為什麼?答案是5.真正的區別 i++; //i的值作為返回值,i自增1 ++i; // i自增1

【C++】前置操作符(++i)操作符(i++)

 一、自增和自減的基本使用方法 自增的兩種形式:  i++ i 的值作為返回值,i 自增 1; ++i i 自增 1,i 的值作為返回值。 Example: #include <iostream> #include <string&

thinkPHP 空模組空操作、前置操作操作 詳細介紹(十四)

一、空模組和空操作1、空操作function _empty($name){$this->show("$name 不存在 <a href='__APP__/Index/index'>返回首頁</a>");}2.空模組(EmptyAction.class.php的檔案)class E

Spring 學習(十六)——Spring AOP之前置通知通知

spring aop 1)加入jar包 com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.R

Spring AOP中的前置通知通知詳解

不同版本的spring對AOP的支援有所不同,spring2.0之前,它主要針對不同型別的攔截器使用XML配置檔案通過代理來實現。而spring2.0之後,它可以使用JDK5的註解來完成AOP的實現,

C++過載++ 如何區分“++”過載前置

來源:http://blog.csdn.net/hemingliang1987/article/details/9204815 在C++中過載單目運算子時,會出現前置還是後置的問題,如++,–等 例如 i++與 ++i 這個時候如何讓編譯器知道是前置還是後置呢? 其實很簡單,只要在過載操作符的引數中加上

Spring入門學習(AOP前置通知通知) 第十五節

Spring入門學習(AOP前置通知) AOP前置通知 後置通知 AOP前置通知 前置通知:在方法之前執行的通知,使用`@Before`註解並將切入點表示式的值作為註解值。 使用Maven新增依賴的jar包:<!--

Spring AOP前置通知通知

在Spring中啟用AspectJ註解支援   要在Spring應用中使用AspectJ註解,必須在classpath下包含AspectJ類庫:aopalliance.jar、aspectj.weaver.jar和spring-aspects.jar   將aop Schema新增到<beans>

jQuery ajax預處理 處理;專案中ajax自動設定 token 請求頭, 介面響應code的統一處理

專案中經常會遇到需要統一設定 ajax請求的預處理 和 需要統一處理ajax返回的需求 比如登入時需要 在頭部新增token(X-Auth-Token) 請求完需要判斷code為已退出token失效(3001)和許可權不足(3002)的情況 開始使

Spring AOP如何用註解實現前置、返回通知

首先新建一個Java Project工程,導包、建Package包,建立三個類分別為學生Student、教師Teacher、測試Test類。再建立一個bean.xml的配置檔案。在學生類Student中建立兩個分別為String型別和Integer型別的屬性na

spring_AOP前置通知&通知&返回通知&環繞通知

Spring AOP AspectJ:(Java社群裡最完整最流行的AOP框架) spring自身也有一套AOP框架,但相比較於AspectJ,更推薦AspectJ 在Spring2.0以上版本中,可以使用基於AspectJ註解或基於XML配置的AOP。 基於Aspect