【发布时间】:2013-12-31 00:57:29
【问题描述】:
我不明白这个 ostream 函数声明是什么意思:
ostream& operator<< (ostream& (*pf)(ostream&));
(特别是(*pf)(ostream&) 部分)。我想做类似的事情:
void print(ostream& os){
cout << os;
}
但我得到了错误:
Invalid operands to binary expression ('ostream' . . . and 'ostream')
【问题讨论】:
-
那是给机械手的。
-
扩展 chris 的评论,声明一个函数
std::ostream& foo(std::ostream& os) { return os << "foo"; }然后在你的主代码中尝试std::cout << foo << std::endl;然后在调试器中单步执行。你很快就会看到它是如何工作的。 -
@IInspectable:Firefox 在此页面上除了您的评论之外的任何地方都找不到
const一词。那么你所指的“你”是谁,你所指的const在哪里? -
您的打印函数签名应该是:
ostream& print(ostream& os);,如果您想将其传递给该操作员。操作符签名看起来像是一个函数指针指向我。