gpt4 book ai didi

c++ - ostream 和 << 重载的问题

转载 作者:行者123 更新时间:2023-11-28 00:35:41 27 4
gpt4 key购买 nike

我有这行打印代码:

 std::cout << *it << std::endl;

现在,由于“it”是一个复杂类型,我需要编写自己的“<<”运算符。这是我的功能:

friend ostream& operator<<(ostream& os, const Node& n ){
return os << n.key << ':' << n.value;
}

我得到一个错误“无法解析类型 ostream”我试过在“ostream”之前添加 std::但这没有帮助。我不确定我还能尝试什么。

最佳答案

您需要 #include <ostream> (如果您使用的是 C++03,<iostream> 是不够的)。

如果您这样做了,并且使用了 std::限定前缀,那么有些事情您没有告诉我们,或者您正在编译错误的文件!


#include <ostream>   // for std::ostream
#include <iostream> // for std::cout

struct Node
{
int key;
int value;
};

std::ostream& operator<<(std::ostream& os, const Node& n) {
return os << n.key << ':' << n.value;
}

int main()
{
Node n = {3, 5};
std::cout << n << '\n';
}

// Output: `3:5`

Live demo

关于c++ - ostream 和 << 重载的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064382/

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