相关疑难解决方法(0)

运算符重载的基本规则和习惯用法是什么?

注意:答案是按照特定的顺序给出的,但由于许多用户根据投票而不是给出的时间对答案进行排序,因此这里是答案索引,它们是最有意义的顺序:

(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)

c++ operator-overloading operators c++-faq

2074
推荐指数
8
解决办法
88万
查看次数

"\n"或"\n"或std :: endl到std :: cout?

自从我std::endl在写作时停止使用结束行std::cout并开始使用以来已经很多年了"\n".

但现在我开始看到更多的代码片段'\n',我开始想知道什么是最好的.

除了显而易见的是一个字符串,另一个字符,使用它有任何好处:

std::cout << variable << '\n';
Run Code Online (Sandbox Code Playgroud)

在此:

std::cout << variable << "\n";
Run Code Online (Sandbox Code Playgroud)

迟到:

当我问这个问题时,我似乎认为换行'\n'刷新了缓冲区.现在我知道这取决于.

默认情况下std::cin,绑定到旧的C stdin FILE*流,并std::cout绑定到stdout.新线上的冲洗来自这种搭售.默认情况下stdout,如果连接到终端,则进行行缓冲.这意味着新行将刷新其缓冲区.因此,当使用打印换行符std::cout时,将导致stdout刷新.

如果stdout未连接到的终端(例如,输出已经被重定向或用管道输送),或者如果之间的联系std::coutstdout被打破,则换行符将不刷新任何东西.

c++ string character

90
推荐指数
3
解决办法
6万
查看次数

当重载operator <<时,std :: endl是未知类型

我重载了运算符<<

template <Typename T>
UIStream& operator<<(const T);

UIStream my_stream;
my_stream << 10 << " heads";
Run Code Online (Sandbox Code Playgroud)

工作但是:

my_stream << endl;
Run Code Online (Sandbox Code Playgroud)

给出编译错误:

错误C2678:二进制'<<':找不到哪个运算符带有'UIStream'类型的左操作数(或者没有可接受的转换)

my_stream << endl工作的工作是什么?

c++ stl operator-overloading

58
推荐指数
4
解决办法
2万
查看次数

标签 统计

c++ ×3

operator-overloading ×2

c++-faq ×1

character ×1

operators ×1

stl ×1

string ×1