c++ - C++ 中的运算符重载 "<<"

标签 c++ overloading operator-keyword

我尝试在 C++ 中重载运算符,但我遇到了一些困难。 这是我在类里面的内容:

ostream & operator <<(ostream & s)
 {
  s << w();
 return s;

}
 string w()
{
stringstream ss;
string str;
for (int i=n-1; i>=0; i--)
{
    if (i==n-1)
    {
        ss<<tablica[i] << "x^" << i;
    }
    else
    {
        if (tablica[i]<eps && tablica[i]>-eps) ss <<"+" << +tablica[i]<< "x^" << i;
        else if (tablica[i]<eps)ss << tablica[i]<< "x^" << i;
        if(tablica[i]>eps) ss <<"+" << +tablica[i]<< "x^" << i;
    }

}
ss >> str;
return str;

}

我正在尝试这样使用它:

cout << p << endl;

错误:no match for 'operator<<' in 'std::cout << p 这是我的整个程序代码:http://codepad.org/xBijPMCp

最佳答案

ostream & operator <<(ostream & s)应该在与特定类的关系中实现(以使其有用),因此签名应该是

friend ostream & operator <<(ostream & s, const class_name &c);

关于c++ - C++ 中的运算符重载 "<<",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15600813/

相关文章:

shared-libraries - LD_PRELOAD 等效于 Windows 预加载共享库

c++ - SFINAE 在类型和非类型模板参数的情况下工作方式不同

java - java中函数重载与跨继承类的函数重写

c++ - 返回对重载私有(private) & 运算符的类的引用?

c++ - 将派生对象列表传递给期望获得基对象列表的函数

c++ - 我可以在浏览器呈现之前访问 Flash 数据吗?

javascript - 将数据复制到 v8::ArrayBuffer

C++用另一个编辑二进制文件

mysql - 如何按最佳匹配排序

matlab - 如何在 Matlab 中正确重载 size() 方法/运算符