Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Alvaro093 en 26 Enero 2012, 19:47 pm



Título: Acceder a una variable privada de una clase desde otra clase
Publicado por: Alvaro093 en 26 Enero 2012, 19:47 pm
Hola, vereis, tengo una duda, tengo una clase "Empleado" la cual tiene algunas variables cadena (Nombre, direccion...) y una cadena la cual cada elemento es un struct, el caso es que tengo otra clase que tiene un metodo que me pide a traves de un parametro ver si en una cadena existe algun objeto de tipo empleado, si existe que la muestr, y si no que devuelva un objeto empleado con todo vacio, es decir, las variables privadas a 0.

Como accedo desde la segunda clase a las variables privadas de la primera?

Citar
class Empleado {
     Cadena Nombre;
     Cadena Direccion;
     Cadena Banco;
     float Sueldo;
     Trabajo Horario[250];
     int NoTrabajos;

Como accedo a esas variables desde la segunda clase, es decir, inicializo un Empleado E, pero como accedo a lo dicho de ese objeto?

Gracias!


Título: Re: Acceder a una variable privada de una clase desde otra clase
Publicado por: soyloqbuskas en 26 Enero 2012, 19:57 pm
¡Buenas Alvaro093!

Para poder acceder a variables privadas de una clase desde el exterior debes crear una funcion publica dentro de esa clase que te retorne la variable que quieres.

Código:
class Empleado {
     Cadena Nombre;
     Cadena Direccion;
     Cadena Banco;
     float Sueldo;
     Trabajo Horario[250];
     int NoTrabajos;

     public Cadena getNombre(){
          return Nombre;
     }

De esta manera, cuando crees tu objeto empleado, podras llamar a tu funcion getNombre()

Código:
      Empleado emp = new Empleado(..., ..., ....,);
      Cadena nombreEmpleado = emp.getNombre();

Espero haberte servido de ayuda. ¡Un saludo!


Título: Re: Acceder a una variable privada de una clase desde otra clase
Publicado por: satu en 26 Enero 2012, 20:19 pm
Hola

Eso es lo básico de la programación orientada a objetos, la encapsulación: desde el exterior no deberías poder acceder directamente a los atributos de la clase, necesitas métodos públicos como dice soyloqbuskas.

Saludos


Título: Re: Acceder a una variable privada de una clase desde otra clase
Publicado por: El_Java en 26 Enero 2012, 20:20 pm
Tambien puedes declarar que Clase 2 es amiga de Clase 1:
Código
  1. class Clase1{
  2. public:
  3.   Clase1();
  4.   ~Clase1();
  5.   friend class Clase2;
  6. private:
  7.   int privada;
  8. };
  9.  
  10. class Clase2{ //Esta clase puede ver los elementos privados de Clase1
  11. ...
  12. };

More info here: http://c.conclase.net/curso/?cap=032


Título: Re: Acceder a una variable privada de una clase desde otra clase
Publicado por: wachi en 27 Enero 2012, 09:46 am
hola
como ya te dijeron antes ,a las variables privadas de una clase no se puede acceder desde otra clase ,tienes que hacer un método publico que te devuelva dicho variable
Ej:
public:
 Cadena getNombre(){
          return Nombre;
     }

y otro para modificar esa variable en caso que lo necesites
Ej:
 void setNombre(Cadena nom ){
       strcpy(Nombre,nom);
     }
Empleado emp = new Empleado(..., ..., ....,);
Cadena nombreEmpleado = emp.getNombre();

emp.setNombre("nom");

en cuanto a lo de las clases amigas te lo recomiendo a modo de cultura, no para que lo utilices ya que creo que es una mala practica de programación,porque hasta donde se solo se puede hacer en c++.Eso es en caso  de que quieras aprender bien POO sin importar el lenguaje ....