Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;重载运算符=用于字符串_C++ - Fatal编程技术网

C++ c++;重载运算符=用于字符串

C++ c++;重载运算符=用于字符串,c++,C++,我在这里不知所措,如何有效地删除当前对象字符串,然后将输入的字符串复制到其中?您的错误在原型上: Word Word::operator= (const Word& RHS) const{ if(word != RHS.GetWord()){ } } 赋值运算符对常量对象无效,因此最后一个const无效。 此外,编译器无法诊断的缺陷(除非在需要左值的地方使用它),它应该通过引用返回 无论如何,由于一个成员一个成员的拷贝已经足够好了,所以定义自己的赋值运算符毫无意义:

我在这里不知所措,如何有效地删除当前对象字符串,然后将输入的字符串复制到其中?

您的错误在原型上:

Word Word::operator= (const Word& RHS) const{

    if(word != RHS.GetWord()){
    }
}
赋值运算符对常量对象无效,因此最后一个
const
无效。
此外,编译器无法诊断的缺陷(除非在需要左值的地方使用它),它应该通过引用返回

无论如何,由于一个成员一个成员的拷贝已经足够好了,所以定义自己的赋值运算符毫无意义:

使用默认值。

如果
wordText
std::string
,则根本不需要重写隐式定义。或者你是什么意思?我想你在找
swap()
。是的wordText是一个字符串。C++阻止了我简单地说WordTeX= RS.GETWORD()。您能否扩展代码以显示最小但完整的
Word
类?还要注意,赋值运算符应该返回对assigned to对象的引用,而不是副本。关于更新:如果这三个都是成员,编译器生成的赋值运算符就可以了。不要打字。(但示例仍然不完整。您没有显示
Word
类的声明。)
Word  Word::operator= (const Word& RHS) const{
//  ^                                   ^^^^^ ???