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