我正在尝试重载类中的输入和输出流。在头文件中,我声明了成员函数:
class MyClass
{
private:
friend ostream &operator <<(ostream &, const MyClass &);
friend istream &operator >>(istream &, MyClass &);
};
然后在.cpp文件中,我正在尝试定义功能。我写它们的方式看起来像这样:
ostream& MyClass::operator<<(ostream &strm, const MyClass &obj)
{
//...
}
istream& MyClass:operator>>(istream &strm, MyClass &obj)
{
//...
}
问题在于,在我定义成员函数的.cpp文件中,Visual Studio告诉我函数头不正确。我确定Visual Studio是正确的,但是我不知道如何解决它,或者为什么它是错误的。我在网上找到的所有解决方案都只是将operator <<和operator >>编写为内联成员函数,但是我想知道为什么我不能在类之外编写定义。
答案 0 :(得分:0)
您可能会发现以下站点有帮助。如果需要,您可以通过单击Live Demo来试用该代码。 https://www.tutorialspoint.com/cplusplus/input_output_operators_overloading.htm