Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 25.12.2005, 01:42   #1
Hamaus
ПроЭктировщик
 
Аватар для Hamaus
 
Регистрация: 12.09.2005
Сообщений: 138
Написано 20 полезных сообщений
(для 31 пользователей)
не могу перегрузить присвоение (=).
Гляньте, кому не сложно, может ошибку найдете. :'((
Класс описывает множество чисел(храняться в булевском массиве).

class mnojestvo{
private:
 int n;
 int j;
 bool *mas;
public:
 mnojestvo(int raz);
 mnojestvo(mnojestvo &mn);
 mnojestvo operator=(mnojestvo mn);
 bool find(int i);
 ~mnojestvo();
mnojestvo operator+(int i);
 void print() const;
};

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
int kvo1=0;
int t=0;
cout<<"mn1 k-vo?"; cin>>kvo1;
mnojestvo mn1(kvo1);
mnojestvo mn3(10);
cout<<endl<<"mn1 ";
for (int i=0; i<kvo1;i++){
cout<<"["<<i<<"]=";cin>>t;
mn1+t;
}

mn1.print();

mn3=mn1;
mn3.print();

    getch();
    return 0;
}

mnojestvo::mnojestvo(int raz){

cout<<endl<<"konstr"<<endl;

 if(raz<0) exit(0);
 n=raz;
 mas=new bool[n];
 j=0;
 for(int z=0;z<n;z++) mas[z]=false;
}

mnojestvo::mnojestvo(mnojestvo &mn){
cout<<endl<<"konst kop"<<endl;
	n = mn.n;
	mas = new bool [n];
	j = mn.j;
	for(int i=0;i<j;i++){
 mas[i]=mn.mas[i];
	}
}

mnojestvo::~mnojestvo(){
cout<<endl<<"distr"<<endl;
delete []mas;
}

void mnojestvo::print() const {
cout<<"{";
int x=0;
while(x<n&&!find(x)) x++;
if(find(x)) cout<<x;
//for(int i=0;i<n;i++) cout<<mas[i]<<" ";
for(int y=x+1;y<n;y++) if(find(y)) cout<<", "<<y;
cout<<"}";
}

mnojestvo mnojestvo::operator+(int i){
if(i<n){
 mas[i]=true;
 j++;
 }
return *this;
}

mnojestvo mnojestvo::operator =(mnojestvo list){
	if(&list==this){
 cout<<"samoprisv"<<endl;
 return *this;
	}
	if(n<list.n){
 cout<<"mesta malo"<<endl;
 bool *b=new bool [list.n];
 for(int u=0;u<list.n;u++)
 	b[u]=mas[u];
 delete []mas;
 n=list.n;
 mas=new bool[n];
// for(int r=0;r<n;r++)
// 	mas[r]=b[r];

	}
//	n=list.n;
	for(int i=0;i<n;i++)
 mas[i]=list.mas[i];
	return *this;
}
bool mnojestvo::find(int i){
if(i<n){
 return mas[i];
}
return false;
}
(Offline)
 
Ответить с цитированием
Старый 25.12.2005, 01:54   #2
Hamaus
ПроЭктировщик
 
Аватар для Hamaus
 
Регистрация: 12.09.2005
Сообщений: 138
Написано 20 полезных сообщений
(для 31 пользователей)
я кажись в конструкторе копирования намухлил.
(Offline)
 
Ответить с цитированием
Старый 25.12.2005, 03:21   #3
alex-mad
Модератор
 
Регистрация: 13.09.2005
Сообщений: 1,835
Написано 6 полезных сообщений
(для 10 пользователей)
плиз! помогите Hamaus'y! а то жопа будет
я на вкидку не вижу erroroв
(Offline)
 
Ответить с цитированием
Старый 25.12.2005, 13:36   #4
Hamaus
ПроЭктировщик
 
Аватар для Hamaus
 
Регистрация: 12.09.2005
Сообщений: 138
Написано 20 полезных сообщений
(для 31 пользователей)
Originally posted by alex-mad@Dec 25 2005, 02:21 AM
плиз! помогите Hamaus'y! а то жопа будет
я на вкидку не вижу erroroв
Я ошибку нашел. Спс.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 23:02.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com