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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Acceder a una variable privada 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 una variable privada de una clase desde otra clase  (Leído 30,514 veces)
Alvaro093

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Acceder a una variable privada de una clase desde otra clase
« 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!


En línea

soyloqbuskas

Desconectado Desconectado

Mensajes: 219


¡El conocimiento es de todos!


Ver Perfil
Re: Acceder a una variable privada de una clase desde otra clase
« Respuesta #1 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!


En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Acceder a una variable privada de una clase desde otra clase
« Respuesta #2 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
En línea

Breakbeat como forma de vida
El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Acceder a una variable privada de una clase desde otra clase
« Respuesta #3 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
En línea

wachi

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Re: Acceder a una variable privada de una clase desde otra clase
« Respuesta #4 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 ....
En línea

Si lo que vas a decir no es mas bello que el silencio : no lo digas
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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