我有以下类(class)(原型(prototype)):
class Token
{
public:
//members, etc.
friend std::stringstream& operator<< (std::stringstream &out, Token &t);
};
运算符是这样实现的:
std::stringstream & operator<< (std::stringstream &out, Token &t)
{
out << t.getValue(); //class public method
return out;
}
现在,我尝试像这样使用它:
std::stringstream out;
Token t;
//initialization, etc.
out << t;
VS 给我报错,说 << 运算符不匹配。我做错了什么?
最佳答案
std::stringstream & operator<< (std::stringstream &out, Token &t)
应该是
std::ostream & operator<< (std::ostream &out, Token const &t)
关于C++ std::stringstream operator<< 重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8824280/