实现功能齐全的移位流语法
Achieve full-featured shift stream syntax
在我的类中,我重载了运算符<lt;以实现
MyObject << something1 << something2;
friend const std::string& operator<<(Logger& os, const std::string& msg);
但我只能做到:
MyObject<lt;某事1;
如果我添加第二个流输入(something2),我会得到一个编译器错误,告诉我没有用于输入之类的运算符。
因此,我的问题是:我如何才能达到预期的语法?
<<
必须返回流(作为引用)。换句话说,它应该返回其第一个(左侧)参数。
os << v1 << v2
被解析为(os << v1) << v2
,因此对于使用相同重载运算符的外部调用,os << v1
的结果最好与os
的类型相同。
好的,我发现了问题。我需要返回MyObject作为参考:
friend Logger& operator<<(Logger& os, const std::string& msg);
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 1d 智能指针不适用于语法 (*)++
- 多态性和功能结合
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++语法运算符功能?
- 有人可以解释以下语法及其功能吗?
- 下面的代码是如何工作的?它输出分解的数字并且功能齐全,我只是不明白它是如何做到的
- QT和新的信号槽语法,QApplication::退出主功能外的插槽
- 朋友功能不起作用(语法错误)
- 功能错误中的表达语法帮助!C/C
- 语法在C 11中获取功能指针
- 在C 中,可以用语法[i,j,..]实现访问数组元素的功能,而语法就像numpy中的ndarray样式一样
- 实现功能齐全的移位流语法
- 我应该如何在C++中读取和解析(真实的、正确的、功能齐全的)CSV
- 如何将功能齐全的 Web 浏览器嵌入到我的 C++ 应用程序中
- C++中的新功能语法
- 在Windows中创建功能齐全的MP3播放器
- c++ lua支持与语法检查和功能完成
- 使用OO语法将Matlab转换为c / c ++,而无需重写其功能