gpt4 book ai didi

c++ - 无法将 std::cout 传递给 ostream& 构造函数

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:20 24 4
gpt4 key购买 nike

我试图创建通用流类持有者,但似乎我无法将 std::cout 传递给它,代码:

#include <iostream>

struct x
{
std::ostream &o;
x(std::ostream &o):o(o){}
};

int main()
{
x(std::cout);
x.o<<"Hi\n";
return 0;
}

编译时失败:

c++ str.cc -o str -std=c++11
str.cc: In function ‘int main()’:
str.cc:11:14: error: invalid use of qualified-name ‘std::cout’
str.cc:12:4: error: expected unqualified-id before ‘.’ token

为什么?

最佳答案

x(std::cout);

相当于

x std::cout;

它试图声明一个名为 std::cout 的局部变量。这是不允许的。

如果你想声明一个x类型的变量,将std::cout传递给它的构造函数,那就是

x x(std::cout);

不过,为了您的理智起见,最好为该类指定一个不同的名称(并更改以下行以使用该名称)。

关于c++ - 无法将 std::cout 传递给 ostream& 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29217127/

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