大家帮我看个类!+法运算符和副本构造函数出问题了。。。。
1>e:\my documents\visual studio 2005\projects\819new\819new\polynomial.h(18) : error C2662: “Polynomial::getPolynomial”: 不能将“this”指针从“const Polynomial”转换为“Polynomial &”
#pragma once
#include <iostream>
using namespace std;
class Polynomial{
private:
int * polynomial;
public:
Polynomial(){
polynomial = new int[50];
for (int i = 0 ; i < 50 ; i++)
polynomial[i] = 0 ;
}
Polynomial( const Polynomial& a )
{
polynomial = new int [50];
for (int i = 0 ; i < 50 ; i++)
polynomial[i] = a.getPolynomial(i);
}
Polynomial(int a1,int a2,int a3,int a4,int a5,int a6){
polynomial = new int[50];
for (int i = 0 ; i < 50 ; i++)
polynomial[i] = 0 ;
polynomial[a2]=a1;
polynomial[a4]=a3;
polynomial[a6]=a5;
}
int getPolynomial(int a){
return polynomial[a];
}
void setPolynomial(int b ,int a){
polynomial[b]=a;
this->print();
}
void print(){
for (int i = 0 ; i< 50 ; i ++)
if (polynomial[i]!=0)
cout<<polynomial[i]<<"x"<<i+1;
}
~Polynomial()
{
delete [] polynomial;
}
};
Polynomial operator +(Polynomial& a,Polynomial& b){
Polynomial temp;
for (int i = 0 ; i < 50 ; i++ ){
temp.setPolynomial(i,a.getPolynomial(i)+b.getPolynomial(i));
temp.print();cout<<endl;}
return temp;
}
[解决办法]
刚才搞错了
- C/C++ code
#pragma once#include <iostream >using namespace std;class Polynomial{private: int * polynomial;public: Polynomial(){ polynomial = new int[50]; for (int i = 0 ; i < 50 ; i++) polynomial[i] = 0 ; } Polynomial( const Polynomial& a ) { polynomial = new int [50]; for (int i = 0 ; i < 50 ; i++) polynomial[i] = a.getPolynomial(i); } Polynomial(int a1,int a2,int a3,int a4,int a5,int a6){ polynomial = new int[50]; for (int i = 0 ; i < 50 ; i++) polynomial[i] = 0 ; polynomial[a2]=a1; polynomial[a4]=a3; polynomial[a6]=a5; } int getPolynomial(int a)const //这里修改 { return polynomial[a]; } void setPolynomial(int b ,int a){ polynomial[b]=a; this->print(); } void print(){ for (int i = 0 ; i < 50 ; i ++) if (polynomial[i]!=0) cout <<polynomial[i] <<"x" <<i+1; } ~Polynomial() { delete [] polynomial; }};Polynomial operator +(const Polynomial& a,const Polynomial& b){ Polynomial temp; for (int i = 0 ; i < 50 ; i++ ){ temp.setPolynomial(i,a.getPolynomial(i)+b.getPolynomial(i)); temp.print();cout <<endl;} return temp;}