• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

运算符重载小程序(对Data类的++,,的重载)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
// Data.cpp : 定义控制台应用程序的入口点。
//运算符重载 自加运算符和输出输入运算符的重载   自加运算符在日期增加时可以判断平年还是闰年

#include "stdafx.h"
#include<iostream>
using namespace std;
class MyData //定义一个Data类有三个数据成员
{private :
	int year;
	int month;
	int day;


public :
	MyData (){year=0;
	month=0;
	day=0;}
	MyData(int y,int m,int d)
	{
	year=y;
	month=m;
	day=d;
	}
	friend ostream& operator <<(ostream &,MyData &);//重载输出流 声明为友原函数
	friend istream& operator >>(istream &,MyData &);//重载输入流 声明为友原函数
	MyData operator ++( );//前置自加运算符重载函数声明

};

ostream& operator<<(ostream & output,MyData & data)//定义重载输出(Data)类流函数
{

output <<"日期是:"<<data.year<<" 年"<<data.month<<"月"<<data.day<<"日"<<endl;
return output;
}

istream& operator >>(istream & input ,MyData & data)//定义重载输入(Data)类流函数
{
cout <<"请输入年月日:"<<endl;
cout <<"请输入年: "<<endl;
input >>data.year;
cout <<"请输入月: "<<endl;
input>>data.month;
cout <<"请输入日: "<<endl;
input>>data.day;
return input;
}


MyData MyData::operator ++( )//前置自加运算符重载函数定义
{
     
	if ((year%4)==0&&((year%100)!=0))
	
			{	if(month==2)
				 {
				  if ( ++day>29)
					{	
						day=day-29;
						month++;
					
					}
				 
				 }
				 else if (month==1||month==7||month==3||month==5||month==8||month==10||month==12)
				 {
				 if ( ++day>31)
					{	
						day=day-31;
						month++;
							  if (month>12)
									{
										++year;
										month=month-12;
									}
					
					}
				 
				 
				 }
				else	if ( ++day>30)
					{	
						day=day-30;
						month++;
						   
					}
	}
		else 
		{
					if(month==2)
					 {
					  if ( ++day>28)
						{	
							day=day-28;
							month++;
						
						}
					 
					 }
					 else if (month==1||month==7||month==3||month==5||month==8||month==10||month==12)
					 {
					 if ( ++day>31)
						{	
							day=day-31;
							month++;
								  if (month>12)
										{
											++year;
											month=month-12;
										}
						
						}
					 
					 
					 }
					else	if ( ++day>30)
						{	
							day=day-30;
							month++;
							   
						}
		}
	
		return *this;

}



int main()//主函数
{
	
MyData data1(2012,12,1);
//cin >>data1;
for (int i=0;i<2000;i++)
{++data1;
cout << data1<<endl;
}
return 0;
}


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序如何定义全局函数?发布时间:2022-07-18
下一篇:
小程序上传多张图片发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap