程序执行不过?
//一元多项式类
#include <iostream>
using namespace std;
class w2
{
public:
w2(int=0);
w2(int, int *, int *);
~w2();
void set(int, int *, int *);
int *get_c() { return c; };
int *get_e() { return e; };
const w2 operator+(const w2 &);
int item;
private:
int *c;
int *e;
};
w2::w2(int item_t)
{
cout<<"constractor\n";
item=item_t;
c=new int [item];
e=new int [item];
for(int i=0; i<item_t; i++)
c[i]=e[i]=0;
}
w2::w2(int item_t, int *array_c, int *array_e)
{
cout<<"constractor\n";
set(item_t, array_c, array_e);
}
w2::~w2()
{
cout<<"destractor\n";
delete [] c;
delete [] e;
}
void w2::set(int i, int *ac, int *ae)
{
item=i;
c=new int [item];
e=new int [item];
c=ac;
e=ae;
}
//it's wrong !!!!
const w2 w2::operator+(const w2 &add_w2)
{
w2 temp(10);
int item_add=0;
for(int i=0; i<add_w2.item; i++)
for(int j=0; j<item; j++){
if(add_w2.e[i]==e[j]){
temp.c[j]=c[j]+add_w2.c[j];
temp.e[j]=e[j];
break;
}
else
if(j==(item-1)){
item_add++;
temp.c[item+item_add-1]=add_w2.c[i];
temp.e[item+item_add-1]=add_w2.e[i];
}
}
return temp;
}
int main()
{
int ac[]={1,2,3,4};
int ae[]={2,3,4,5};
int dc[]={1,2,3,4,5,6};
int de[]={2,3,4,5,6,7};
w2 a(4,ac, ae), d(6, dc, de);
int *c=a.get_c();
int *b=a.get_e();
for(int i=0; i<4; i++)
cout<<c[i]<<' '<<b[i]<<endl;
int i;
w2 temp;
temp=a+d; <-----------没反应,也不报错!
int *temp_c =temp.get_c();
int *temp_e =temp.get_e();
for(i=temp.item; i>=0 && (temp_c[i]!=0 || temp_e[i]!=0); i--)
;
for(int j=0; j<i; i++)
cout<<temp_c[i];
return 0;
}
out:
constractor
constractor
1 2
2 3
3 4
4 5
constractor
constractor
destractor
destractor
请指点一下~谢谢!