Другие языки программирования и технологии

с++. нужно для списков из библиотеки шаблонов перегрузить оператор==. делаю как в классах - хрен. подскажите, что-нибудь

Не совсем понятно задание, так как оно многовариантно, вот один из них:

#include <iostream>
using namespace std;

struct slistelem
{
char data;
slistelem* next;
};

class slist
{
slistelem* h;
public:
slist(): h(0) { }
~slist() { release(); }
void prepend(char c);
void del();
slistelem* first() const { return h; }
void print() const;
void release();
bool operator==(slist& x);
};

bool slist::operator==(slist& x)
{
if(&x)
{
if(h==x.h) return true;
else
if(h&&x.h)
{
if(h->data==x.h->data) return true;
else return false;
}
else return false;
}
}

void slist::prepend(char c)
{
slistelem* temp= new slistelem;
temp->next=h; temp->data=c; h=temp;
}

void slist::del()
{
slistelem* temp=h; h=h->next;
delete temp;
}

void slist::print() const
{
slistelem* temp=h;
cout << "{";
while(temp) cout << temp->data,temp=temp->next;
cout << "}" << endl;
}

void slist::release()
{
while(h) del();
}

int main()
{
slist* p=NULL;
{
slist w;
w.print();
if(p) { p->print(); if(w==*p) cout << "Равны\n"; else cout << "Не равны\n"; } else cout << "Второй объект отсутствует! \n";
w.prepend('A');
w.prepend('B');
w.print();
if(p) { p->print(); if(w==*p) cout << "Равны\n"; else cout << "Не равны\n"; } else cout << "Второй объект отсутствует! \n";
w.del();
w.print();
p=&w;
if(p) { p->print(); if(w==*p) cout << "Равны\n"; else cout << "Не равны\n"; } else cout << "Второй объект отсутствует! \n";
slist z;
w.print();
z.print();
if(w==z) cout << "Равны\n"; else cout << "Не равны\n";
z.prepend('A');
w.print();
z.print();
if(w==z) cout << "Равны\n"; else cout << "Не равны\n";
z.prepend('R');
w.prepend('R');
w.print();
z.print();
if(w==z) cout << "Равны\n"; else cout << "Не равны\n";
z.del();
z.prepend('T');
w.print();
z.print();
if(w==z) cout << "Равны\n"; else cout << "Не равны\n";
z.prepend('Q');
w.prepend('Q');
w.print();
z.print();
if(w==z) cout << "Равны\n"; else cout << "Не равны\n";
}
}
BX
Begzod Xasanov
76 473
Лучший ответ
Андрей Никишин в классе перегрузить не проблема, совершенно. а мне нужно именно в структуре