elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Acceder a variables de una clase desde otra clase?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Acceder a variables de una clase desde otra clase?  (Leído 5,521 veces)
overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Acceder a variables de una clase desde otra clase?
« en: 11 Julio 2012, 22:06 pm »

Buenas compañeros, me ha surgido otro problema. El caso es que quiero modificar desde una clase, una variable de otra en la cual ya he declarado un objeto, he probado pasando como parámetros punteros,referencias e incluso el objeto(cosa que daba error) y no consigo modificar el nombre.

¿Existe alguna manera de llevar a cabo esta modificación?

Gracias  ;-)


En línea

[/url]
eleon

Desconectado Desconectado

Mensajes: 99


Ver Perfil
Re: Acceder a variables de una clase desde otra clase?
« Respuesta #1 en: 12 Julio 2012, 00:52 am »

Puedes obtener el valor de la clase a modificar y pasárselo a la clase "modificadora". Si lo quieres hacer por punteros aqui tienes un ejemplo:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. //La clase que contiene las variables que queremos modificar
  5. class Clase_1
  6. {
  7.    public:
  8.        int* devolver_puntero_coord_x () {return &coord_x;}
  9.        int coord_x; //La variable está declarada como pública para comprobar si lo hemos hecho bien.
  10. };
  11.  
  12. //La clase desde la cual vamos a modificar los valores de la clase superior
  13. class Clase_2
  14. {
  15.    public:
  16.        void modificar_coord_x (int* coord_x, int nuevo_valor);
  17. };
  18.  
  19. void Clase_2::modificar_coord_x (int* coord_x, int nuevo_valor)
  20. {
  21.    *coord_x = nuevo_valor;
  22. }
  23.  
  24. int main ()
  25. {
  26.    Clase_1 objeto_modificado;
  27.    objeto_modificado.coord_x = 10; //Le damos un valor inicial para ver si se modifica o no
  28.    cout << "Coordenada X: " << objeto_modificado.coord_x; //Comprobamos que el valor inicial almacenado es 10
  29.  
  30.    Clase_2 objeto_modificador; //Objeto de la clase desde la que queremos hacer modificaciones
  31.    objeto_modificador.modificar_coord_x (objeto_modificado.devolver_puntero_coord_x(), 20); //Llamamos a la funcion para modificar el valor.
  32.                                                                         //Como primer parámetro le pasamos el puntero con la función de la Clase 1.
  33.                                                                         //Como segundo parámetro le pasamos el nuevo valor.
  34.  
  35.    cout << endl << "Coordenada X: " << objeto_modificado.coord_x; //Comprobamos si se ha modificado o no.
  36.  
  37.    cin;
  38.    return 0;
  39. }

Saludos.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines