string重载bool operator==(const string&s1,const string&s2);//请问.调用这个函数
发布网友
发布时间:2022-04-29 23:50
我来回答
共2个回答
热心网友
时间:2023-10-10 16:25
运算符的重载有两种方式,一种是 成员函数的方式,另一种是 友元函数的方式,你写的属于 友元函数。
首先一个对象如果想判断是否相等就得重载 == ,如果你把 bool operator== 注掉,那么编译的时候就会报错,为什么会报错儿? 如果你的代码中存在 if(str == str2),那么编译的时候就先去查找,是否存在 ==的函数?如果不存在,那么报错。如果你用的是成员函数的方式来实现== ,那么 if(str == str2) 就相当于 str.operator ==(str2),如果是友元,那么就相当于 philzt1984 所说的 if(operator ==(str, str2)),你应该还去弄明白个事,就是什么叫双目运算符。追问http://zhidao.baidu.com/question/417783138.html?quesup2&oldq=1
热心网友
时间:2023-10-10 16:25
operator == 不是类成员函数,是个string类的友元函数;
C++:怎样在string类中完成两个字符串的连接,复制?
string &append(const_iterator first,const_iterator last);//把迭代器first和last之间的部分连接到当前字符串的结尾 string的比较:bool operator==(const string &s1,const string &s2)const;//比较两个字符串是否相等运算符">","<",">=","<=","!="均被重载用于字符串的比较;int compare(const string ...
...str(std::string & reslut) const 请问里面的两个const 和&是什么意...
第一个const修饰std::string&表示返回的std::string的引用指向的是一个常量,即你获取了返回值后不能修改它 第二个const修饰这个函数,表示这个函数是常量成员函数,不过你这里似乎也不是类成员函数……应该不这么用的。这个const表明这个成员函数不能修改类的任何成员变量。两个&都是表示引用类型。
c语言中string是啥意思啊?控制啥的啊
string&assign(conststring&s,intstart,intn);//把字符串s中从start开始的n个字符赋给当前字符 string&assign(const_iteratorfirst,const_itertorlast);//把first和last迭代器之间的部分赋给字符串 4、string的连接: string&operator+=(conststring&s);//把字符串s连接到当前字符串的结尾 string&append(constcha...
...from 'const class String' to 'class String &'
原因很简单:常对象只能调用常成员函数。String(const String&rs){ len=rs.getlen();//***在这里报错 } 因为rs是个const对象,所以为了避免该对象被改变,要求getlen函数也必须是常成员函数。修改下getlen函数的定义即可:int getlen()const {return len;}//这样就行了 另外要包含个头文件#includ...
定义string& operator=(const char *pc); 操作 string str; str=...
这是不可能的 可以使用字符串字面值作为参数的地方都可以使用字符类型指针
在C++中 const std::string& s = std::string() 是什么意思
HasPtr()是一个函数吧,所以const std::string &s=std::string()就是一个参数,而赋值表达式的值就是左边变量经赋值后的值,就是string()的返回值,也就是一个空字符串。所以,整条语句表示将一个空字符串赋给引用s,并把这个空字符串当参数传给HasPtr函数 ...
c++ 函数类型const string&?
图片1的返回的是std::string的一个拷贝,return temp的时候,会把temp的内容复制一份返回出来,然后因为temp对象是临时的,就自动释放了。图片2的返回是std::string的一个引用。return temp的时候,直接把临时对象的引用返回出去了,但函数结束时,temp对象因为是临时的,会自动释放,所以外面拿着的temp...
C++ const string &
&在这里就不是取地址符了,而是变量的引用,引用就相当于给一个变量取一个别名,在这里你把它当指针记号*来看就行了。main传递给该函数的是两个string类型的变量。至于更多关于引用的内容,你随便找一本c++的书上面都有讲解~~仔细看书哦!
c++ protobuffer bytes 字段怎么使用
::std::stringGetTypeName()const;//requiredint64acctID=1;//下面的成员函数都是因message中定义的acctID字段而生成。//这个静态成员表示AcctID的标签值。命名规则是k+FieldName(驼峰规则)+FieldNumber。staticconstintkAcctIDFieldNumber=1;//如果acctID字段已经被设置返回true,否则false。inlineboolhas...
C++程序运行出错,有好多乱码“葺葺葺葺葺葺葺葺?”,求救~
你缺了一个=操作符的重载。如果不重载的话,默认的是浅拷贝。就是对地址的拷贝。s3的成员变量指向s1+s2返回的临时对象new出来的空间。然后临时对象被析构,s3的成员变量不就没有了吗?在=操作符重载中,你写一个深拷贝,自己new一段空间来存储,问题就能解决了 ...