FIFO输入运算符过载
FIFO Input Operator Overloading
目前正在学习C++,我正在尝试创建两个类Bit
和BitBuffer
来处理比特流。
我的Bit
类由一个unsigned char
组成
其原理是将Bit
s发送到一个BitBuffer
对象,当8个Bit
s在一个BitBuffer
对象中时,我刷新缓冲区。
我试图重载BitBuffer
类的输入运算符,因为我希望能够编写以下命令:
Bit x;
BitBuffer buffer;
x >> buffer;
我写了一个enqueue
方法,所以我认为我应该在重载运算符中调用这个方法。然而,当我现在输入这些命令时,Xcode告诉我"二进制表达式的无效操作数"。
我试图理解这个错误,但不明白为什么Xcode告诉我使用函数作为变量。
欢迎任何帮助,
提前谢谢!
您需要确保在某个地方定义了一个operator>>
,它将Bit
作为第一个参数,将BitBuffer
作为第二个参数。不过,更有可能的是,你会想推翻这些论点,并写下这样的表达式:
buffer << x;
因为这样你也可以将多个比特链入缓冲区:
buffer << x << y << z;
如果你在BitBuffer
类上写了一个操作符,如下所示:
class BitBuffer {
public:
BitBuffer& operator<<(const Bit& b) {
// do your work here
return *this;
}
};
相关文章:
- 重载运算符>>() 表示未知的输入长度/结构
- 在C++中重载输入/输出运算符
- 如何使用运算符>>在自定义字符串中输入多个单词?
- 使用函数重载输入运算符
- 在函数中使用运算符重载,在 c++ 中使用 const 类型输入参数
- 重载输入 (>>) 运算符以获取枚举字符串
- c++中重载输入运算符的问题
- 处理输入流运算符>>中的无效输入
- 如何将重载>>运算符中输入的值插入到资源库
- 使用运算符将分隔的输入分隔>>变量
- 如何输入和输出方括号运算符 []
- 流输入运算符导致分段错误与 clang 但适用于 gcc
- 字符串流运算符输入失败
- 动态内存分配和输入(流)运算符C++
- 重载>>运算符未在输入上设置属性
- 输入迭代器 - 星号和后缀运算符
- 用户输入逻辑运算符符号或数字,如果输入字符或字符串则无效
- 是否可以使用条件运算符将输入流传递给函数?
- C++ 重载运算符>>(输入)不会更改原始运算符
- 与使用运算符重载 C++ 的运算符<<输入输出不匹配