【发布时间】:2016-07-15 10:03:02
【问题描述】:
我有一个小代码 sn-p,它试图重载 std::cout 的“
#include<iostream>
using namespace std;
ostream& operator<<(ostream& out,const string& str)
{
out << "overloading" << str << "done";
return out;
}
int main()
{
cout << "string123";
}
输出:string123。 似乎我的重载函数没有被调用。为什么?
【问题讨论】:
-
可能是因为已经有是 an overload of the output operator 需要
std::string? -
@JoachimPileborg 更有可能是接受
const char*。 -
@JoachimPileborg 接受
std::string的重载在<string>标头中定义,很明显,这里不包括。 -
main的返回类型在哪里? -
@AlgirdasPreidžius:没有什么可以阻止
<iostream>包括<string>对 OP 的实施。
标签: c++