重载运算符解决办法
重载运算符
菜鸟求助!
下面是我做的一个重载运算符的一个程序。重新定义<>=,比较两个日期。
有问题了,求改正!
------解决方案--------------------
菜鸟求助!
下面是我做的一个重载运算符的一个程序。重新定义<>=,比较两个日期。
有问题了,求改正!
- C/C++ code
#include <iostream> #include <cstring> using namespace std; class bijiao { private: char * riqi1; char * riqi2; public: void get_char(); int operator < (char * riqi1,char * riqi2); int operator > (char * riqi1,char * riqi2); int operator = (char * riqi1,char * riqi2); void display(); }; void bijiao::get_char() { gets(riqi1); gets(riqi2); } int bijiao::operator < (char * riqi1,char * riqi2) { if(strcmp(riqi1,riqi2)==-1) return 1; else return 0; } int bijiao::operator > (char * riqi1,char * riqi2) { return strcmp(riqi1,riqi2); } int bijiao::operator = (char * riqi1,char * riqi2) { if(strcmp(riqi1,riqi2)==0) return 1; else return 0; } void bijiao::display() { if(riqi1>riqi2) cout<<riqi1<<"<"<<riqi2<<endl; else if(riqi1=riqi2) cout<<riqi1<<"="<<riqi2<<endl; else cout<<riqi1<<">"<<riqi2<<endl; } void main() { bijiao a; a.get_char(); a.display(); }
------解决方案--------------------
- C/C++ code
#include <iostream> #include <cstring> using namespace std; class bijiao { private: char riqi1[100]; // char * riqi2; public: void get_char(); int operator <(const char* riqi2); int operator >(const char* riqi2); int operator ==(const char* riqi2); void display(const char* riqi2); }; void bijiao::get_char() { gets(riqi1); /* gets(riqi2);*/ } int bijiao::operator < (const char* riqi2) { if(strcmp(riqi1,riqi2)==-1) return 1; else return 0; } int bijiao::operator > (const char* riqi2) { return strcmp(riqi1,riqi2); } int bijiao::operator ==(const char* riqi2) { if(strcmp(riqi1,riqi2)==0) return 1; else return 0; } void bijiao::display(const char* riqi2) { if(riqi1>riqi2) cout<<riqi1<<"<"<<riqi2<<endl; else if(riqi1==riqi2) cout<<riqi1<<"="<<riqi2<<endl; else cout<<riqi1<<">"<<riqi2<<endl; } void main() { bijiao a; char tmp[]="abcdefg"; a.get_char(); a.display(tmp); }