OPP OPERATOR OVERALOADING class CNgay

// file.h nhé các bạn thân yêu của tui #pragma once #include<iostream> #include<fstream> using namespace std; class CNgay { private: int ngay ,thang ,nam ; public: CNgay(void);// Khởi tạo mặc định nhe các bạn CNgay(int ,int ,int );// khởi tạo có tham số né các bạn CNgay(const CNgay &); // khởi tạo sao chép nhé các bạn ~CNgay(void);// hàm hủy nhé các bán ở bàn này thì không cần mấy đâu ghi cho có zay thuj ///// ta cài phương thức nhập xuất cho nó các bạn nhé friend istream& operator>>(istream&,CNgay &);// phương thức nhập xuất ngày nhé các bạn friend ostream& operator<<(ostream&,CNgay );// phương thức xuất nhé các bạn // bây giờ ta qua phần so sánh 2 ngày với nhau nhé các bạn CNgay operator=(CNgay );// bool operator>(CNgay ); bool operator<(CNgay ); bool operator>=(CNgay ); bool operator<=(CNgay ); bool operator==(CNgay ); bool operator!=(CNgay ); CNgay operator+(CNgay ); CNgay operator-(CNgay ); // Bây giờ ta qua toán tử +=,-= nhá các bạn CNgay operator+=(CNgay ); CNgay operator-=(CNgay ); // bây giờ ta qua toán tử thang và giảm 1 ngày nhé các bạn // tăng trước nhé nhé các bạn CNgay operator++(); /// tăng sau nhé cac bạn CNgay operator++(int );// tham // bay giờ là giảm nhé các bạn // giảm trước rồi gán nghĩa là cà 2 bằng nhau nhé các bác CNgay operator--(); // giam sau rồi gán qua nhé các bác CNgay operator--(int ); }; // file .cpp nhe cac bạn thân yêu của tui #include "Ngay.h" CNgay::CNgay(void) { ngay=1; thang=1; nam=1; } CNgay::CNgay(int n,int t,int z)// khởi tạo có tham số { ngay=n; thang=t; nam=z; } CNgay::CNgay(const CNgay &a) { ngay=a.ngay; thang=a.thang; nam=a.nam; } CNgay CNgay::operator=(CNgay a) { ngay=a.ngay; thang=a.thang; nam=a.nam; return *this; } // phương thức nhập xuất cho nó nè các bạn ostream& operator<<(ostream &os,CNgay a) { os<<a.ngay<<"/"<<a.thang<<"/"<<a.nam; return os; } istream& operator>>(istream &is,CNgay &a) { int thangnam[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if(a.nam%4==0&&a.nam%100!=0||a.nam%400==0) thangnam[1]=29; do{ cout<<" Nhap ngay: "; is>>a.ngay; if(a.ngay>thangnam[a.thang-1]) { cout<<" Loi xin kiem tra lai ngay vua nhap !"; } }while(a.ngay>thangnam[a.thang-1]); do{ cout<<" Nhap thang: "; is>>a.thang; if(a.thang>12) { cout<<" Loi thang xin kiem tra lai ! "; } }while(a.thang>12); cout<<" Nhap nam: "; is>>a.nam; return is; } bool CNgay::operator>(CNgay a) { if(nam>a.nam) { return true; } else { if(thang>a.thang) { return true; } else { if(ngay>a.ngay) { return true; } } } return false; } bool CNgay::operator<(CNgay a) { if(nam<a.nam) { return true; } else { if(thang<a.thang) { return true; } else { if(ngay<a.ngay) { return true; } } } return false; } bool CNgay::operator>=(CNgay a) { if(nam>=a.nam) { return true; } else { if(thang>=a.thang) { return true; } else { if(ngay>=a.ngay) { return true; } } } return false; } bool CNgay::operator<=(CNgay a) {if(nam<=a.nam) { return true; } else { if(thang<=a.thang) { return true; } else { if(ngay<=a.ngay) { return true; } } } return false; } // bây giờ là == nhé bool CNgay::operator==(CNgay a) { return (ngay+thang+nam)==(a.ngay+a.thang+a.nam); } bool CNgay::operator!=(CNgay a) { return (ngay+thang+nam)!=(a.ngay+a.thang+a.nam); } // bây giờ ta qua toán tử cộng nhé các bạn CNgay CNgay::operator+(CNgay a) { int thangnam[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if(nam%4==0&&nam%100!=0||nam%400==0) thangnam[1]=29; CNgay b; b.ngay=ngay+a.ngay; b.thang=thang+a.thang; b.nam=nam+a.nam; if(b.ngay>thangnam[thang-1]) { b.ngay-=thangnam[thang-1]; if(b.ngay==0) { b.ngay=1; } b.thang+=1; } if(b.thang>12) { b.thang-=12; if(b.thang==0) { b.thang=1; } b.nam+=1; } return b; } // bây giờ ta qua phan62n trừ nhé các bạn thân yêu CNgay CNgay::operator-(CNgay a) { int thangnam[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if(nam%4==0&&nam%100!=0||nam%400==0) thangnam[1]=29; CNgay b; b.ngay=ngay-a.ngay; b.thang=thang-a.thang; b.nam=nam-a.nam; if(b.thang<0) { b.thang=12+(thang-a.thang); b.nam-=1; } if(b.ngay<0) { //b.ngay*=-1; int k=b.ngay; b.ngay=thangnam[thang-1]+k; b.thang-=1; if(b.thang<0) { //int f=(thang-2)+(12-a.thang); //b.thang=f+1; b.thang=12+(thang-a.thang); b.nam-=1; } } if(b.ngay==0) { b.ngay=thangnam[thang-1]; b.thang-=1; if(b.thang==0) { b.thang=12; b.nam-=1; } } if(b.nam==0) { b.nam=0; } return b; } // bây giờ ta qua phần +=,-= nhé các bạn CNgay CNgay::operator+=(CNgay a) { int thangnam[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if(nam%4==0&&nam%100!=0||nam%400==0) thangnam[1]=29; *this=this->operator+(a); return *this; } CNgay CNgay::operator-=(CNgay a) { int thangnam[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if(nam%4==0&&nam%100!=0||nam%400==0) thangnam[1]=29; *this=this->operator-(a); return *this; } CNgay CNgay::operator++() { CNgay c(1,0,0); *this=this->operator+(c); return *this; } CNgay CNgay::operator++(int x) { CNgay item=*this; CNgay c(1,0,0); *this=this->operator+(c); return item; } CNgay CNgay::operator--() { CNgay c(1,0,0); *this=this->operator-(c); return *this; } CNgay CNgay::operator--(int x) { CNgay item=*this; CNgay c(1,0,0); *this=this->operator-(c); return item; } CNgay::~CNgay(void) { } // file main nhe cac bạn thân yêu của tui #include"Ngay.h" int main() { /*CNgay a(1,2,1),b(1,1,4); if(a>b) { cout<<" a>b"; } else { cout<<"a<b"; }*/ /*a-=b; CNgay c=a-b; cout<<endl; cout<<a; cout<<endl; cout<<c; */ // tang 1ngay2 giảm 1 ngày nhé các bạn //CNgay e(2,1,2013); //CNgay a; //a=e++; //cout<<a; //cout<<e; // giảm nhé các bạn // CNgay e(1,1,2013); //CNgay a; //a=e--; //cout<<a; //cout<<endl; //cout<<e; //CNgay q(1,6,1); //CNgay s(1,1,2013); //CNgay f= --s; //cout<<f; //cout<<endl; //cout<<s; CNgay a(1,1,2016),b(1,2,2010); if(a>b) { cout<<" Ngay a> ngay b"; } else { cout<<" Ngay b> ngay a"; } CNgay c=a-b; cout<<endl; cout<<c; system("pause"); return 0; }

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.