gpt4 book ai didi

c++ - 自定义类型的自定义 C++ 流

转载 作者:太空宇宙 更新时间:2023-11-04 13:27:20 30 4
gpt4 key购买 nike

我读过有关 C++ 的自定义流,但似乎人们通常继承自 std::streambufstd::istreamstd: :ostream。通过检查这些类型的声明,很明显这些是针对字符的:

typedef basic_streambuf<char>        streambuf;

The docs确认这一点:

Input stream objects can read and interpret input from sequences of characters.

显然,这是有道理的。我想知道为其他类型实现流的正确方法是什么。我不想允许文本,而是其他形式的二进制输入/输出(我有特定格式)。明显的步骤似乎是继承上面的 basic 变体(basic_streambufbasic_istreambasic_ostream)并使用我认为合适的任何类型作为模板参数。我没有找到确认这是正确程序的证据。那么,是吗?

编辑澄清:我有一个名为 Segment 的类。这些流将发送/接收段,并且仅通过 WiFi 连接发送/接收段,因为这些在通信协议(protocol)中使用。发送任何其他内容都会破坏协议(protocol)。这意味着流不能支持其他类型。

最佳答案

这不是关于从 std::basic_* 继承的问题的答案与非 char类型。但是根据评论并根据您的申请,我质疑是否需要为您的 Segment 重新实现整个标准流机制。类型,当您可以简单地使用流运算符定义一个类时:

class SegmentStream
{
public:

SegmentStream& operator<< ( const Segment& s );
}

更好的是,您可以通过定义方法来阐明您的代码 sendrecv而不是 >>, << .或者您可以解释为什么这还不够,以及为什么您特别想使用标准流?

关于c++ - 自定义类型的自定义 C++ 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32918198/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com