0
大家好:我正在努力將一個類對象的cof分配給另一個類對象。然而,爲什麼我的超載(=)只能分配前兩個cofs!(cof是指向int的指針)如何更正此程序中的重載分配?
我是新來的,我不知道如何在這裏輸入畝代碼。我希望有一個人可以幫助我!謝謝! 這是我的代碼:
#include <iostream>
using namespace std;
class polynomial
{ private :
int* cof;
int size;
public :
polynomial();
polynomial(int);
polynomial(const polynomial& a);
~polynomial();
int getvalue() const;
void operator =(const polynomial& a);
void output(const polynomial& p);
};
int main()
{ int m;
cout<<"how many numbers in p1 :"<<endl;
cin>>m;
polynomial p1(m);
cout<<"how many numbers in p2"<<endl;
cin>>m;
polynomial p2(m);
cout<<"the p1's cof"<<endl;
p1.output(p1);
cout<<"the p2's cof"<<endl;
p2.output(p2);
polynomial t;
t=p1;
cout<<" the t's cof:"<<endl;
t.output(t);
t=p2;
cout<<"the t's cof:"<<endl;
t.output(t);
return 0;
}
polynomial::~polynomial()
{ delete [] cof;}
polynomial:: polynomial():size(1)
{ cof= new int[size];
cof[0]=0;
}
polynomial::polynomial(int a): size(a)
{ cof= new int[size+1];
cout<<"please enter the numbers:"<<endl;
for(int i=0;i<size+1;i++)
cin>>cof[i];
}
polynomial::polynomial(const polynomial& a)
{ cof= new int[a.size+1];
for(int i=0;i<=a.size;i++)
{ cof[i]=a.cof[i];}
}
int polynomial::getvalue() const
{ return size;}
void polynomial::output(const polynomial& p)
{ for(int i=0;i<=p.size;i++)
{ cout<<p.cof[i]<<" ";}
cout<<endl;
}
void polynomial::operator =(const polynomial& a)
{ if (cof!=NULL)
delete [] cof;
int x=a.getvalue();
cof= new int[x+1];
for(int i=0;i<=x;i++)
{ cof[i]=a.cof[i];}
}
將粘貼代碼粘貼到編輯窗口中,將其全部選中並點擊Control-K。 – Casey