Overloading Iostream C++
Overloading Iostream C++
我正在写一个标题Matrix3x3实现,我想独立,而不是依靠其他标题,除了我也写过的vector3标头。
目前,我希望它超载Ostream<<操作员,但我不想在其中包括 iostream 。
包括 ostream ,是否可以使超载可选并起作用,并且如果不包括在内,那么所有其余的工作都可以在没有过载的情况下工作?
我考虑过检查是否包括 ostream 标题,但它具有重大缺陷,因为如果在Matrix3x3标头之后包含 iostream ,它将无法正常工作。
编辑:我已经用 iostream ostream ,因为我认为它对问题的目的造成了一些混乱。
为什么不使用 <iosfwd>
?
示例:
#include <iosfwd>
class Example
{
public:
Example(int i) : i(i) {}
private:
int i;
friend std::ostream& operator<<(std::ostream& os, Example const& example);
};
#include <iostream>
int main()
{
Example e(123);
std::cout << e << 'n';
}
std::ostream& operator<<(std::ostream& os, Example const& example)
{
os << example.i;
return os;
}
请注意,您不能在您自己的代码中安全地向前销售标准类。相关问题:
- 向前声明一个stl容器?
- std名称空间中变量/类的正向声明
相关文章:
- 是否可以用"iostream"包装现有的TCP/OOpenSSL会话
- 需要从 istream 和 ostream 派生 iostream
- std::带有自定义缓冲区的 iostream 不允许我写入
- 新的放置取决于 iostream
- 包含在 <initializer_list> <iostream>?
- 为什么在包含iostream时可以使用printf()?
- 如果 iostream 对象不可复制,为什么以下代码是合法的?
- 为什么我必须在包含后写 std::cin <iostream>?
- 如何将带有空字符的字节数组馈送到 std::iostream 中?
- 磁力计代码:C++ vs C - iosstream,矢量 - 错误iostream:没有这样的文件或目录
- 通过boost asio iostream下载大文件的最快方法是什么?
- 为什么 VScode 在 .h 文件中显示"'iostream' file not found"?
- 包含iostream导致不同的二进制文件
- iostream运算符重载的C++异常规范
- basic_iostream和iostream之间的区别
- iostream 和 fstream 的重载<<
- Borland C++编译器中的Iostream
- 从类模板继承时需要iostream
- 为什么<iostream>依赖MinGW dll?
- 如何保证不包括 iostream?