【发布时间】:2020-08-08 15:02:52
【问题描述】:
我正在尝试为分配重载流插入运算符。在我的头文件中,我有以下内容:
friend ostream& operator<<(ostream, Vector);
在我的实现文件中,我有:
friend ostream& operator<<(ostream& outputStream, Vector& displayMe) {
outputStream << "<" << displayMe.GetVX << "," << displayMe.GetVY << ">";
return outputStream;
}
我收到一条错误消息:
“类声明外的说明符无效”
错误指向我的实现文件中以friend ostream&开头的行。
我显然是运算符重载的新手。我应该在课堂之外定义这个吗?我只是对为什么会收到此错误以及如何修复代码感到困惑。任何建议都会有所帮助。
【问题讨论】:
-
见this
-
您不能在类声明之外使用
friend。此外,您在实现文件中的定义与头文件中的声明不匹配(ostreamvsostream&在第一个参数中,VectorvsVector&在第二个参数中)。声明和定义需要相互匹配。
标签: c++ operator-overloading operator-keyword cout