永发信息网

C++一道程序,没有与这些操作数匹配的"[]"运算符

答案:3  悬赏:70  手机版
解决时间 2021-02-25 07:28
#include <iostream>
#include <string>
using namespace std;
class String
{
public:
String() { p=NULL;}
String(char *str){ p=str; };
friend bool operator>(String &str1,String &str2);
friend bool operator<(String &str1,String &str2);
friend bool operator==(String &str1,String &str2);
String& operator=(const String &s){};
void display();
int getlen()const { return len;}

private:
char *p;
int len;

};
void String::display()
{ cout<<p;}
bool operator>(String &str1,String &str2)
{
if(strcmp(str1.p,str2.p)>0)
return true;
else
return false;
}
bool operator<(String &str1,String &str2)
{
if(strcmp(str1.p,str2.p)<0)
return true;
else
return false;
}
bool operator==(String &str1,String &str2)
{
if(strcmp(str1.p,str2.p)==0)
return true;
else
return false;
}

String& String::operator=(const String &s)
{
if(this==&s)
return *this;
else
{
delete []p;
len=s.getlen();
p=new char[len+1];
for(int i=0;i<len;i++)
{
p[i]=s[i];//这里就说没有与这些操作数匹配的"[]"运算符,可是赋值运算符不是重载了吗为什么还不行?
}
p[len]='\0';
}
return *this;

}
最佳答案
赋值运算符是编译器自动重载的, 但是下标运算符你没有重载.
你这个程序还不止那一处错误:
String& operator=(const String &s){};

这个明显是一个函数声明, 但是你加了一对大括号.
全部回答
s是String类型,不能用s[i], 你可以用s.SubString(1,1)这样子的 另外你这里可以用 strcpy(p,s)也许是这样strcpy(p,s.c_str())
你没有做<<运算符重载啊! 类中增加 friend ostream &operator<<(ostream &os,const string &s); 重载函数 在类外进行函数实现 ostream &operator<<(ostream &os,const string &s) { os << s.m_data ; return os; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
英语中表达在队伍之中用介词on还是in
德令哈市信鸽协会地址有知道的么?有点事想过
开头是先生们女士们Hao do you do?是什么哥歌
6米8高栏总质载重15点8吨,多载多少算不超载
盼望换一个意思一样的成语是什么
有谁知道东风大桥附近什么时候拆迁
新打印机怎么去掉封条
赤峰雷蒙大药房NO.232地址在什么地方,想过去
我最近皮肤干燥不知道有人用过叶子的面膜吗效
如何正确的在家里给孩子量身高
下图表示利用GIS信息技术绘制耕地农作物NDVI(
我用农商银行转工商,都两天了,一直没有到账
客观评价下 [邓丽欣&吴雨霏] 的嗓音~
据说有些面膜啊刚用过效果特别好,但是停用以
龙珠Z如果贝吉特没有被分开就这样打败布欧了
推荐资讯
仁寿阁养生会所在哪里啊,我有事要去这个地方
【默认网关的作用】以下关于VRRP作用的说法正
肖尹赵地址有知道的么?有点事想过去
虾闹龙虾烧烤(烧烤)在什么地方啊,我要过去处
下面是关于基因、蛋白质和性状三者间的关系叙
哪些眼膜能去眼袋
梦见大学宿舍被淹
【休克体位】休克病人最理想的体位为()
乌额格其学校在什么地方啊,我要过去处理事情
侯爷是什么官
红木艺术品都包括哪些谁清楚
寻找健康食材猫粮,内含谷物及海鱼的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?