gpt4 book ai didi

c++ - 为什么我必须使用引用来返回/传递 std::ostream?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:09 26 4
gpt4 key购买 nike

为什么我在使用这段代码时出错:

ostream operator<<(ostream flux, Perso const A)
{
A.O_Show(flux);
return flux;
}
error: use of deleted function 'std::basic_ostream<char>::basic_ostream(const std::basic_ostream<char>&)'|

并且没有错误:

ostream& operator<<(ostream& flux, Perso& const A)
{
A.O_Show(flux);
return flux;
}

你能解释一下有什么区别吗?

最佳答案

至于你的代码

ostream operator<<(ostream flux, Perso const A) {
A.O_Show(flux);
return flux;
}

您不能复制 std::ostream作为返回值(在 标准之前,甚至这些都是 protected 在第一位),只需将您的代码更改为

ostream& operator<<(ostream& flux, Perso& const A) {
// ^
A.O_Show(flux);
return flux;
}

关于c++ - 为什么我必须使用引用来返回/传递 std::ostream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24048592/

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