Programación General > C/C++
[C++] Duda sobre funciones amigas y herencia
(1/1)
Vndecid:
Hola Tengo una duda sobre funciones amigas y Herencia
Supongamos que tengo una clase "base" que contiene la funcion amiga friend ostream (etc saraza o sea todo lo demas)
Cuando hago una clase "derivada" de esa base la funcion amiga friend ostream(etc) y sus metodos ¿Se heredan? y si es asi ¿Como ingreso/utilizo a ellas?
Desde ya muchas gracias
alb:
Holà,
La amistad no se transmite con herencia.
Aunque no me sale evidente de porque necesitas herencia con ostream ? Para eso, function virtual es bastante :
--- Código: C++ ---#include <iostream> struct base{ std::ostream& print(std::ostream&out_) const { out_<<"I'am a class : "; return do_print(out_); } virtual ~base() // =default con C++0x {}private : virtual std::ostream& do_print(std::ostream&out_) const { return out_<<"base"; }}; struct derived : public base{ private: virtual std::ostream& do_print(std::ostream&out_) const { return out_<<"derived"; }}; std::ostream& operator<<(std::ostream&out_, base const &base_){ base_.print(out_); return out_<<"n";} void tell_me_who_am_i(base const&b_){ std::cout<<b_;} int main(){ tell_me_who_am_i(base()); tell_me_who_am_i(derived()); return 0;}
Vndecid:
Gracias ,te explico nos piden eso por que es la ultima parte del curso de Programacion en el cual dan una introduccion muy introductoria a C++
Navegación
Ir a la versión completa