重载运算符

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

#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();
}
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingzijuntuan 2012-04-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
1 类里成员变量没有初始化
2 比较日期只是简单的strcmp吗?
[/Quote]
我用字符串来表示日期,不就可以用strcmp来做吗?
W170532934 2012-04-07
  • 打赏
  • 举报
回复

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



重载操作符不是自定义函数,要按照一定的格式来的。还有<,>,==这几个操作符,我觉得定义一个就够了。当然你必须把这一个定义的很完善。
vanxeger 2012-04-06
  • 打赏
  • 举报
回复
LS正解比较日期,不能这样的!
visayafan 2012-04-06
  • 打赏
  • 举报
回复
1 类里成员变量没有初始化
2 比较日期只是简单的strcmp吗?

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧