在类外部重载输入和输出流
Overloading input and output streams outside of the class
我正在尝试重载类中的输入和输出流。在头文件中,我声明了成员函数:
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是对的,但我不知道如何修复它,或者为什么它是错误的。我在网上找到的所有解决方案都只是将运算符<<和运算符>>编写为内联成员函数,但我想知道为什么我不能在类之外编写定义。
您可能会发现以下网站很有帮助。如果需要,您可以通过单击实时演示来使用代码。https://www.tutorialspoint.com/cplusplus/input_output_operators_overloading.htm
相关文章:
- 为什么我的输出与输入不同?(C++)
- 如何在C++中编写 ostream 的向量,它接收所有不同的输出流,如 cout、ostringstream 和 ofs
- 在输出流中插入换行符
- 在类外部重载输入和输出流
- 通用容器的输出流
- 我的动态链接队列在同一输出流中调用时不正确地输出三个返回函数
- 使输出流式处理运算符适用于 boost::variant<std::vector<int>、int、double 的正确方法是什么>
- 如何让我的输出显示输入金额的星号
- 用于了解输入和输出流缓冲区实际工作方式的程序
- 组合输入和输出流
- 标准C++输入输出流必须如何处理intXX_t类型
- 输出流中出现的尚未输入的C++数字
- 使用字符串流输入/输出布尔值
- C++:输入和输出流运算符:关联性
- 从输出流中删除输入
- 如何在一行中将输入流重定向到输出流
- 如果输入流被发送到输出流会发生什么?
- 如何在c++中写入/读取未知的输入/输出流
- c++输入和输出流
- 输入和输出流