Hej, mam problem z przeciązeniem operatora == (właściwie nie wiem jak).
2 //ilosc operacji
1 //dodanie
a //nazwa
1 //ilosc fanow
1 //dodanie aktora
a //te same dane
1 //te same dane
powinno zostać wyświetlone info: NIE juz jest taki sam
Czyli chcę przeciążyć operator żeby sprawdzał mi 2 obiekty czy liczba fanów i nazwa są takie same jeśli tak to niech wyświetli “NIE juz jest taki sam”
#includeiostream
#includestdio.h
#includestring
using namespace std;
int liczbaoperacji;
int operacja;
int liczbafanow;
int ilemaxmoznastracic;
string dane;
class Aktor
{
public:
string dane;
int liczbafanow;
Aktor * next;
Aktor * prev;
Aktor();
};
Aktor::Aktor()
{
next = NULL;
prev = NULL;
}
bool operator== ( Aktor a, Aktor b )
{
return a.liczbafanow == b.liczbafanow a.dane == b.dane;
}
class Lista
{
public:
Aktor * head;
Aktor * tail;
Lista();
bool IsEmpty();
void Add(Aktor *nowy);
};
Lista::Lista() //konstruktor
{
head = NULL;
tail = NULL;
}
bool Lista::IsEmpty()
{
if (head==NULL tail==NULL)
return true;
else
return false;
}
void Lista::Add(Aktor *nowy)
{
if(IsEmpty()) //gdy pusta ....pierwszy,ostatni, gdzies w srodku
{
tail=nowy;
head=nowy;
printf("TAK pierwszy element\n");
return; //wyjdz z funkcji
}
Aktor *tymczasowy = head;
if(nowy==tymczasowy)
{ //nie dodawaj jesli taki sam jest w liscie, a w liscie jest tylko 1 element
printf("NIE juz jest taki sam\n");
return;
}
}
int main()
{
//ios_base::sync_with_stdio(0);
Lista nowalista;
scanf("%d",liczbaoperacji);
for(int i=0;iliczbaoperacji;++i)
{
scanf("%d",operacja);
if(operacja==1) //dodanie aktora
{
Aktor *nowyaktor = new Aktor;
getline(cin, dane);
getline(cin, dane);
scanf("%d",liczbafanow);
nowyaktor-dane=dane;
nowyaktor-liczbafanow=liczbafanow;
nowalista.Add(nowyaktor);
}
}
return 0;
}