【发布时间】:2015-02-23 17:01:15
【问题描述】:
我正在为多项式创建一个类。我在运算符重载中遇到错误。我是第一次使用它,所以错误可能很愚蠢
get_size() 正在返回数组的最大长度。
coefficient[] 是 coeff 的数组。
exponant[] 是指数
我已经使用参考声明了它们
int* coefficient;
int* exponent;
多项式.h
friend std::ostream& operator << (std::ostream&,Polynomial&);
多项式.cpp
//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& operator << (std::ostream& out, const Polynomial& obj)BTW。 -
我在 pol 后面加了分号;主要。
-
嗯,正常的思维方式是问自己并检查为什么“
get_size()正在返回数组的最大长度”。是你做的吗?或者我误解了问题所在......顺便说一句,它甚至可以编译吗?这段代码似乎不止一个问题。