quiero sobrecargar el operador < < en una de mis clases. La firma es la siguiente:C++: ¿las funciones de amigo deben estar definidas en el archivo de encabezado?
friend std::ostream& operator<<(std::ostream& os, const Annuaire& obj)
Cuando trato de definirlo en el .cpp presentar dice que el operador < < toma exactamente 1 argumento, sin embargo, cuando me defino en el .h, se compiló /funciona bien.
Éste es cómo definirlo en el archivo .cpp:
std::ostream& Annuaire::operator<<(std::ostream& os, const Annuaire& obj){ // ... }
¿Tiene algo que ver con funciones amigas que necesitan ser definidos en los archivos de cabecera?
Tienes que '' ostream' y istream' derecha ... –
sí, su amigo es istream y el de la CPP es ostream, si eso es intencional, se necesitan 2 declaraciones amigo y 2 definiciones , si no, corrige una u otra dependiendo de si quieres dentro o fuera de la corriente –
Gracias, eso fue un error de copiar y pegar de todos modos. – Pacane