当前位置:编程学习 > C/C++ >>

2013第八周上机任务[项目2-Time类中的运算符重载]

[cpp]
/* 
* Copyright (c) 2013, 烟台大学计算机学院                     
* All rights reserved.                     
* 文件名称:test.cpp                     
* 作者:樊露露                    
* 完成日期:2013 年 4 月 22 日                     
* 版本号:v1.0                   
*                     
* 输入描述:无                     
* 问题描述:                  
* 程序输出:
* 问题分析:                    
* 算法设计:略                     
*/          
#include <iostream>  
using namespace std; 
class CTime 
{private: 
 unsigned short int hour;    // 时  
 unsigned short int minute;  // 分  
 unsigned short int second;  // 秒  
 
 public: 
 CTime(int h=0,int m=0,int s=0){hour=h;minute=m;second=s;} 
 void setTime(int h,int m,int s); 
 void display(); 
 //比较运算符(二目)的重载  
 bool operator > (CTime &t); 
 bool operator < (CTime &t); 
 bool operator >= (CTime &t); 
 bool operator <= (CTime &t); 
 bool operator == (CTime &t); 
 bool operator != (CTime &t); 
 //二目运算符的重载  
 CTime operator+(CTime &c);//返回c所规定的时、分、秒后的时间,例t1(8,20,25),t2(11,20,50),t1+t2为:41:15  
 CTime operator-(CTime &c);//对照+理解  
 CTime operator+(int s);//返回s秒后的时间  
 CTime operator-(int s);//返回s秒前的时间  
 //一目运算符的重载  
 CTime operator++( int);//后置++,下一秒  
 CTime operator++();//前置++,下一秒,前置与后置返回值不一样  
 CTime operator--( int);//后置--,前一秒  
 CTime operator--();//前置--,前一秒  
 //赋值运算符的重载  
 CTime operator+=(CTime &c); 
 CTime operator-=(CTime &c); 
 CTime operator+=(int s); 
 CTime operator-=(int s); 
}; 
 
 
//下面实现所有的运算符重载代码。  
 
void CTime::display() 

    cout<<hour<<":"<<minute<<":"<<second<<endl; 

 
bool CTime::operator>(CTime &t) 

   if(hour==t.hour) 
   { 
       if(minute==t.minute) 
       { 
           if(second>t.second) 
            return true; 
           else 
            return false; 
       } 
       if(minute>t.minute) 
        return true; 
       else 
        return false; 
   } 
   if(hour>t.hour) 
    return true; 
   else 
    return false; 

 
bool CTime::operator<(CTime &t) 

   if(hour==t.hour) 
   { 
       if(minute==t.minute) 
       { 
           if(second<t.second) 
            return true; 
           else 
            return false; 
       } 
       if(minute<t.minute) 
        return true; 
       else 
        return false; 
   } 
   if(hour<t.hour) 
    return true; 
   else 
    return false; 

bool CTime::operator>=(CTime &t) 

   if(hour==t.hour) 
   { 
       if(minute==t.minute) 
       { 
           if(second>=t.second) 
            return true; 
           else 
            return false; 
       } 
       if(minute>t.minute) 
        return true; 
       else 
        return false; 
   } 
   if(hour>t.hour) 
    return true; 
   else 
    return false; 

 
bool CTime::operator<=(CTime &t) 

   if(hour==t.hour) 
   { 
       if(minute==t.minute) 
       { 
           if(second<=t.second) 
            return true; 
           else 
            return false; 
       } 
       if(minute<t.minute)&nb

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,