C++ 超载<&书信电报;带ostream的操作员不工作。为什么?
我有一个小代码段,它试图重载“首先,流式传输的不是C++ 超载<&书信电报;带ostream的操作员不工作。为什么?,c++,C++,我有一个小代码段,它试图重载“首先,流式传输的不是std::string,而是const char*。您可以通过编写cout来解决这个问题,您应该向发送一个字符串类型。在您的示例中,您基本上是在自食其果。您重载运算符可能是因为已经有一个重载接受std::string?@JoachimPileborg更可能接受const char*@JoachimPileborg接受std::string的重载在头中定义,显然,这里不包括。main的返回类型在哪里?@AlgirdasPreidžius:OP的实现
std::string
,而是const char*
。您可以通过编写cout来解决这个问题,您应该向发送一个字符串类型。在您的示例中,您基本上是在自食其果。您重载运算符可能是因为已经有一个重载接受std::string
?@JoachimPileborg更可能接受const char*
@JoachimPileborg接受std::string
的重载在
头中定义,显然,这里不包括。main
的返回类型在哪里?@AlgirdasPreidžius:OP的实现中没有停止
包括
。它会输出“重载”字符串,但不会输出“string123”@buld0zzr没错。所以OP的问题是关于重载,而不是如何进行一些打印示例。根据您的实现,ostream@buld0zzr你在开玩笑吗?这不是问题所在。这里没有一般ostream@user2531608向上投票并回答接受是表示感谢的一种方式:)
#include<iostream>
using namespace std;
ostream& operator<<(ostream& out,const string& str)
{
out << "overloading" << str << "done";
return out;
}
int main()
{
cout << "string123";
}
ostream& operator<<(ostream& out,const string& str)
{
out<<"overloading";
return out;
}
int main()
{
string s = "string123";
cout << s;
}
out << "overloading" << str <<"done"
#include<iostream>
using namespace std;
ostream& operator<<(ostream& out, const string& str)
{
out << "overloading" << str.c_str() << "done";
return out;
}
int main()
{
cout << std::string("string123");
}
overloadingstring123done