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

[0] Índice de Mensajes

Ir a la versión completa