提问人:M Qwadezo 提问时间:3/20/2021 最后编辑:M Qwadezo 更新时间:3/20/2021 访问量:222
C++ 自定义流
C++ custom stream
问:
如何在 C++ 中实现自己的自定义流?
为什么?
我想使用有线连接将数据从一个微控制器发送到另一个微控制器,我认为自定义流是最直观的方式。
例:
#include "myStream.h"
int main()
{
myStream << "Hello world!";
return 0;
}
编辑:
溶液:
class Stream
{
private:
// members
public:
Stream() {}
friend Stream& operator<<(Stream& stream, const Whatever& other);
};
Stream& operator<<(Stream& stream, const Whatever& other)
{
// do something
return stream;
}
答:
2赞
tadman
3/20/2021
#1
如果你看一是如何工作的,这只是一个流对象和你想发送到它的各种东西的重载情况。没什么特别的,它只是读起来很好,但你可以使用或任何你想要的东西。operator<<
<<
+
评论
0赞
M Qwadezo
3/20/2021
当我尝试重载时,出现错误operator<<
error: invalid operands of types ‘Stream()’ and ‘int’ to binary ‘operator<<’
1赞
tadman
3/20/2021
值得用可以重现该问题的代码打开一个新问题。在结束之前,您可能需要回答一些其他问题。
0赞
user253751
3/20/2021
@tadman 实际上,您的想法不允许标准库的所有现有流功能都起作用。可以制作自己的流,像 ofstream/ostringstream/etc 一样自动工作,因此您可以将整数作为十进制写入其中,设置格式选项等。
0赞
tadman
3/20/2021
@user253751 您可以制作自己完全独立的“流”系统,也可以利用现有的“流”系统并制作一个与流兼容的系统。这两种方法都有其实用性。我将“自定义流”解释为不兼容,但独立。
上一个:在 C++ 中格式化输出
下一个:类方法的 C++ 插入运算符
评论
endl