Witam
Mam pytanie, robię przeładowanie operatora <<, przeładowanie jest napisane w klasie i wpada do niego jeden argument. Niestety argumenty będą różnymi typami (dokładnie trzy string, double i int). Próbowałem zrobić standardowe przeciążenie (czyli 3 razu napisana metoda-przeładowanie ale z różnymi typami argumentów) niestety VS2015 nie pozwala mia na tę sztuczkę.
Robię tak
void Czarymary::operator<<(int Zaklecie)
{
doNow(Zaklecie)//metoda obrabiająca dalej - nie ważne teraz
}
void Czarymary::operator<<( string Zaklecie)
{
//Tutaj będę chciał, przerkonwertować stringa na inta i posłać dalej
}
I dostaję błąd:
no instance of overloaded function “Czarymary::operator<<” matches the specified type
Masz błąd ponieważ robisz to w sposób niewłaściwy. Nie możesz przeciążać operatorów jak Ci się podoba, metody przeciążające operator przyjmują konkretne argumenty i czasami muszą zwracać konkretny typ, nie ma tutaj samowolki.