Ох... С++....


гильдия Бойцы (Грандмастер)[17306] ЭФИОП Информация
Назад к темам раздела.
2009-06-21 17:03:00 гильдия Бойцы (Грандмастер)[17306] ЭФИОП Информация
Не понимаю, у меня в коде где-то ошибка... Могу скинуть по асе тем, кто сможет помочь( Или тут, но фрагментами, ибо боюсь не влезет)
В общем, задача такова: написать прогу, которая будет считать сумму, разность и т.п. полиномов через 2 класса, через список. У меня в одной из перегрузок ошибка. Вот перегрузка
void Polinom::operator=(Polinom s1)
{
int i=0,k,s;
current=first;
while(i<=s1.MaxStep())
{
cout<<" i="<<i<<"step="<<s1.MaxStep()<<" k=";
k=s1[i].koef;
s=s1[i].step;
this->InsertToEnd(k,s);
cout<<k<<" s="<<s<<" ";
getch();
//d cvthis->current->ShowPart();
i++;
//current=current->next;
}

}
Ошибка в том, что он копирует нулевую и первую степени... А потом просто дублирует все остальные шаги 1вую степень...
 
2009-06-21 17:04:30 гильдия Бойцы (Грандмастер)[17306] ЭФИОП Информация
Вот функции, которые тут используются:
int Polinom::MaxStep()
{
current=first;
int i=current->step;
while(current)
{
if(i<current->step) i=current->step;
current=current->next;
}
return i;

}
void Polinom::InsertToEnd(int koef,int step)
{
Odno4len* newOdno4len = new Odno4len(koef,step);
if(!first)
{
first=newOdno4len;
return;
}
else
{
current=first;
while(current->next) current=current->next;
current->next=newOdno4len;
}
}
Odno4len::Odno4len(int _koef, int _step):koef(_koef),step(_step),next(0)
{
}

 
2009-06-21 17:27:11 гильдия Бойцы (Грандмастер)[17306] ЭФИОП Информация
у я лошара. Забудьте. А кому интересно, где ошибка - стучите в асю :)))
 
2009-06-21 18:16:54 гильдия Собиратели (Адепт)[1307] Farsh Информация
буквы