首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

重载运算符解决办法

2012-04-12 
重载运算符菜鸟求助!下面是我做的一个重载运算符的一个程序。重新定义,比较两个日期。有问题了,求改正!C/

重载运算符
菜鸟求助!
下面是我做的一个重载运算符的一个程序。重新定义<>=,比较两个日期。
有问题了,求改正!

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

热点排行