Witam. Prówbuje w programie stworzyc przeładowanie operatora wejścia dla typu wyliczeniowego enum tak aby móc użyć w programie
cin>>arg1// arg1 jest typem wyliczeniowym enum.
próbuję zorobić to w ten sposób:
Symbol konwersja(char *arg)
{
switch(*arg)
{
case 'e': return e;
case 'a': return a;
case 'b': return b;
case 'c': return c;
case 'd': return d;
default:
return f;
}
return f;
}
istream& operator >>(istream& Wejscie, Symbol & arg1)
{
char temp;
Wejscie>>temp;
arg1=konwersja(&temp);
return Wejscie;
}
void odczyt(Symbol *arg1, Symbol *arg2,char *znak)
{
cout<<"wprowadz odpowiedz"<<endl;
cin >>*arg1;// tu się pojawia błąd: no match for ‘operator>>’ in ‘std::cin >> * arg1’
cin>>*znak;
cin>>*arg2;//tu się pojawia błąd: no match for ‘operator>>’ in ‘std::cin >> * arg1’
cout<<*arg1;
}
Nie weim gdzie popełniam błąd. Pierwszy raz używam przeładowania tego operatora. Proszę o pomoc.