struct 重载操作符的问题。编译不能识别该重载的操作符。

haozi 2002-05-21 05:58:01
struct FilmData
{
char filmName[32];
char customerName[32];

};

int operator == (const FilmData &A , const FilmData *B)
{
return strcmp (A.filmName ,B->filmName);
}

后,在我程序的某段,我使用==比较两个FilmData的变量是否相等
可是编译时报错。
...全文
241 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
haozi 2002-05-21
  • 打赏
  • 举报
回复
to z_sky()
语法来自 "data structures with c++"
fangrk 2002-05-21
  • 打赏
  • 举报
回复
更正:
ab.fileName[i]=bc.FileName[i]='\0';//不然没有构成字符串
fangrk 2002-05-21
  • 打赏
  • 举报
回复
int operator == (const FilmData &A , const FilmData &B);
for(int i=0;i<32;i++) {
ab.filmName[i]='a';
ab.customerName[i]='b';
bc.filmName[i]='a';
bc.customerName[i]='b';
}
ab.fileName[i]=bc.customerName[i]='\0';//Important!
cout<<(ab==bc)<<endl;
kof99th 2002-05-21
  • 打赏
  • 举报
回复
把两个参数都改成引用。
Januarius_ 2002-05-21
  • 打赏
  • 举报
回复
两个参数都改成引用就没问题了,不过你的实现好像还有问题呀
#include <iostream>
using namespace std;
struct FilmData
{
char filmName[32];
char customerName[32];

};

int operator == (const FilmData &A , const FilmData &B)
{
return strcmp(A.filmName ,B.filmName);
}
int main() {
FilmData ab,bc;
for(int i=0;i<32;i++) {
ab.filmName[i]='a';
ab.customerName[i]='b';
bc.filmName[i]='a';
bc.customerName[i]='b';
}
cout<<(ab==bc)<<endl;
return 0;
}
上面这样输出的是1,但是下面输出的却是-1
int main() {
FilmData ab,bc;
for(int i=0;i<32;i++) {
ab.filmName[i]='a';
ab.customerName[i]='b';
bc.filmName[i]='a';
bc.customerName[i]='c';
}
cout<<(ab==bc)<<endl;
return 0;
}
#include <iostream>
using namespace std;
struct FilmData
{
char *filmName;
char *customerName;

};

int operator == (const FilmData &A , const FilmData &B)
{
return strcmp(A.filmName ,B.filmName);
}
int main() {
FilmData ab,bc;
ab.filmName=new char[32];
ab.customerName=new char[32];
bc.filmName=new char[32];
bc.customerName=new char[32];

for(int i=0;i<32;i++) {
ab.filmName[i]='a';
ab.customerName[i]='b';
bc.filmName[i]='a';
bc.customerName[i]='c';
}
cout<<(ab==bc)<<endl;
return 0;
}
改成这样就应该对了,不知道我有没有理解错你的意思
z_sky 2002-05-21
  • 打赏
  • 举报
回复
有哪本书告诉你这样用的?回去认真看看C++的书。

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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