Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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++_Operator Overloading - Fatal编程技术网

C++ 操作员此功能的参数过多?

C++ 操作员此功能的参数过多?,c++,operator-overloading,C++,Operator Overloading,我自己做了一个字符串类,显然是为了做作业,我的两个操作符出现了奇怪的语法错误。我的equality和add运算符声称我在.h文件中有太多参数,但随后又声称该方法甚至不属于.cpp文件中的类 我甚至把相等运算符作为朋友,但intellisense仍然给我相同的错误消息 有人知道我做错了什么吗 friend bool operator==(String const & left, String const & right); 字符串.h string.cpp 您需要在类外定义运算符

我自己做了一个字符串类,显然是为了做作业,我的两个操作符出现了奇怪的语法错误。我的equality和add运算符声称我在.h文件中有太多参数,但随后又声称该方法甚至不属于.cpp文件中的类

我甚至把相等运算符作为朋友,但intellisense仍然给我相同的错误消息

有人知道我做错了什么吗

friend bool operator==(String const & left, String const & right);
字符串.h

string.cpp

您需要在类外定义运算符==:

bool String::operator==(String const & left, String const &right)
     ^^^^^^^^ REMOVE THIS
如果运算符+也是朋友,则也需要将其定义为自由函数,即在类之外。

您需要在类之外定义运算符==:

bool String::operator==(String const & left, String const &right)
     ^^^^^^^^ REMOVE THIS

如果operator+也是朋友,它也需要被定义为一个自由函数,即在类之外。

同样适用于operator+,无论是朋友还是敌人。@NPE-Wow。非常感谢你!!编辑:忘记删除我的类中的方法声明。一切都很好。再次感谢你!!这同样适用于操作符+,无论是朋友还是敌人。@NPE-Wow。非常感谢你!!编辑:忘记删除我的类中的方法声明。一切都很好。再次感谢你!!
bool String::operator==(String const & left, String const &right)
     ^^^^^^^^ REMOVE THIS