Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: gibranini en 21 Mayo 2014, 22:10 pm



Título: Asociacion en c++
Publicado por: gibranini en 21 Mayo 2014, 22:10 pm
Alguien sabe como asociar en c++ con clases o algun libro que me recomienden donde me explique y diga como hacerlo  :o


Título: Re: Asociacion en c++
Publicado por: patilanz en 21 Mayo 2014, 23:10 pm
Que te refieres con asocias clases?


Título: Re: Asociacion en c++
Publicado por: gibranini en 21 Mayo 2014, 23:54 pm
al tipo de Relación llamado Asociación (conexión entre clases), pero no tengo idea de como hacerlo,


Título: Re: Asociacion en c++
Publicado por: eferion en 22 Mayo 2014, 08:16 am
¿Punteros? ¿Herencia?


Título: Re: Asociacion en c++
Publicado por: patilanz en 22 Mayo 2014, 23:18 pm
Polimorfismo? Herencia? Que es?


Título: Re: Asociacion en c++
Publicado por: gibranini en 23 Mayo 2014, 04:56 am
Creo que herencia, solo se que se tienen que comunicar dos clases por medio de punteros o variables :S


Título: Re: Asociacion en c++
Publicado por: eferion en 23 Mayo 2014, 08:46 am
Eso no es herencia:

En el ejemplo que pongo se ve cómo se pueden comunicar clases sin necesidad de herencia.

Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. class B;
  5.  
  6. class A
  7. {
  8.  friend class B;
  9.  
  10.  public:
  11.    A( )
  12.      : b( nullptr )
  13.    { }
  14.  
  15.    void SetB( B* ptr_b )
  16.    { b = ptr_b; }
  17.  
  18.    void EnviarMensaje( const std::string& mensaje ) const;
  19.  
  20.  private:
  21.  
  22.    B* b;
  23.  
  24.    void PonerMensaje( const std::string& mensaje ) const
  25.    { std::cout << "A: " << mensaje << std::endl; }
  26. };
  27.  
  28. class B
  29. {
  30.  friend class A;
  31.  
  32.  public:
  33.    B( )
  34.      : a( nullptr )
  35.    { }
  36.  
  37.    void SetA( A* ptr_a )
  38.    { a = ptr_a; }
  39.  
  40.    void EnviarMensaje( const std::string& mensaje ) const
  41.    { if ( a ) a->PonerMensaje( mensaje ); }
  42.  
  43.  private:
  44.  
  45.    A* a;
  46.  
  47.    void PonerMensaje( const std::string& mensaje ) const
  48.    { std::cout << "B: " << mensaje << std::endl; }
  49. };
  50.  
  51.  
  52. void A::EnviarMensaje( const std::string& mensaje ) const
  53. { if ( b ) b->PonerMensaje( mensaje ); }
  54.  
  55. int main( )
  56. {
  57.  A a;
  58.  B b;
  59.  
  60.  a.SetB( &b );
  61.  b.SetA( &a );
  62.  
  63.  a.EnviarMensaje( "Hola" ); // Pantalla: B: Hola
  64.  b.EnviarMensaje( "Adios" ); // Pantalla: A: Adios
  65. }

Deberías aclarar un poco más los requisitos


Título: Re: Asociacion en c++
Publicado por: vangodp en 23 Mayo 2014, 08:47 am
creo que te puede servir: https://www.youtube.com/watch?v=vu8VVk2faYY  ;-)
Suerte


Título: Re: Asociacion en c++
Publicado por: gibranini en 28 Mayo 2014, 02:37 am
Gracias  ;D ;D