Chcę przeciążać operatora < < w jednym z moich zajęć. Podpis idzie tak:C++ - czy w pliku nagłówkowym należy zdefiniować funkcje znajomego?
friend std::ostream& operator<<(std::ostream& os, const Annuaire& obj)
Kiedy próbuję zdefiniować go w .cpp plik jest napisane, że operator < < dokładnie trwa 1 argumentu, jednak kiedy zdefiniować go w .h, to skompilowany /działa w porządku.
ten sposób zdefiniować go w pliku .cpp:
std::ostream& Annuaire::operator<<(std::ostream& os, const Annuaire& obj){ // ... }
Czy to ma coś wspólnego z przyjacielem funkcje muszą zostać zdefiniowane w plikach nagłówkowych?
Musisz dostać '' istream' ostream' i prawo ... –
Tak, twój przyjaciel jest istream i jeden w KPP jest ostream, jeżeli jest to celowe trzeba będzie 2 deklaracji przyjaciół i 2 Definicje , jeśli nie, napraw jeden lub drugi w zależności od tego, czy chcesz wejść, czy wyjść na zewnątrz. –
Dzięki, to był i tak błąd kopiowania i wklejania. – Pacane