使用运算符重载时使用C++函数获取错误

使用运算符重载时使用C++函数获取错误,c++,operator-overloading,C++,Operator Overloading,我正在为多项式做一个类。我在运算符重载时出错。我第一次使用它,所以这个错误可能很愚蠢 get_size返回数组的最大长度。 系数[]是系数的数组。 exponant[]表示指数 我已经使用引用声明了它们 int*系数; int*指数 多项式h friend std::ostream& operator << (std::ostream&,Polynomial&); 多项式 //overloading << operator std::ostre

我正在为多项式做一个类。我在运算符重载时出错。我第一次使用它,所以这个错误可能很愚蠢 get_size返回数组的最大长度。 系数[]是系数的数组。 exponant[]表示指数 我已经使用引用声明了它们 int*系数; int*指数

多项式h

 friend std::ostream& operator << (std::ostream&,Polynomial&);
多项式

//overloading << operator
std::ostream& operator << (std::ostream& out,Polynomial& obj)
{
for (int i=0 ; i < obj.get_size() ; i++)
 {
     if(obj.coefficient[i]!=0)
     {
         if (i== obj.get_size()-1)      //last term does not have '+'
             out << obj.coefficient[i] << "x^" << obj.exponent[i] <<endl;
         else 
             std::ostream& i = out << obj.coefficient[i] << "x^" <<  obj.exponent[i] << " + ";
     }
 }
 return out;
 }    
main.cpp

    cout << pol    // where pol is object 

提前感谢

在不知道错误是什么的情况下,这肯定是不正确的:

std::ostream& i = out << obj.coefficient[i] << "x^" <<  obj.exponent[i] << " + ";
应该是:

out << obj.coefficient[i] << "x^" <<  obj.exponent[i] << " + ";

既然您没有向我们展示全部代码,那么您会收到什么错误消息?您会收到什么类型的错误?编译器错误?运行时错误?应为std::ostream&操作员,我在pol后加了分号;总之,通常的思考方式是问自己,并检查为什么get_size返回数组的最大长度。是你干的吗?或者我误解了问题所在。。。顺便问一下,它甚至可以编译吗?这段代码似乎有不止一个问题。