a ver XD
lo que tienes en private solo puedes acceder desde la misma funcion.
lo que tienes en public puedes acceder desde cualquier parte incluyendo desde otra clase.
Entonces si en una clase en la parte privada tienes algo como un entero edad, esta claro que de otra clase no puedes tener acceso pero si en la parte publica haces una función de forma que retorne la edad si es legal.
Código C++:
Ver original#include <iostream>
using namespace std;
class a {
public:
a() { suEdad = 23; } //El constructor setea suEdad en 23 al crear un objeto como en "claseA"
~a(){}
int getEdad()const{ return suEdad; } //Esta funcion retorna suEdad cuando la invoque
private:
int suEdad;
} claseA; //objeto tipo a, vamos a trabajar con objetos que son como copias de las clases
class b {
public:
b() { guardaEdad = claseA.getEdad(); } //Esto obtiene la edad de la claseA y la guarda en "guardaEdad"
~b(){}
void imprimir(){ cout << "guardarEdad tiene guardado: " << guardaEdad << endl; }
private:
int guardaEdad; //guardarEdad va tomar el valor de suEdad del objeto claseA del tipo a ( Otra clase ;) )
}claseB;//Objeto tipo b, esto al igual que el objeto tipo a, es una copia de la clase b, las clases no las tocaremos.
int main (){
//Ahora comprobamos si todo ha ido bien llamando el metodo imprimir de la clase b nos imprimira el 23 que es de la clase a y lo recebimos en la clase b
claseB.imprimir();
cin.ignore();
return 0;
}
No es la unica forma de hacer esto.
Puedes crear un objeto tipo a dentro de b y así tener acceso.
Pero basicamente lo que quiero que entiendas es que vas a tener que usar las funciones get y set de la clase, estas funciones no son mas que acceder de forma indirecta a la variable.
enves de hacer esto int variable = 30; no vas a poder por que variable estará en private, pues tendras que hacer algo como esto void set( int unNumero ){ variable = unNumero; }
entonces si la función set esta en la misma clase en la parte publica puedes pasar un numero a la funcion y ella se encarga de almacenar en "variable" dentro de la parte privada ;)
se suele llamar set a las que ponen valor y get a las que retornan valor.
tu----> int variable = 30; //Incorrecto
tu--->public: void set( int unNumero ){ variable = unNumero; } ---> private: int variable; //correcto
Seria asi:
tu---> set(30)---> variable = 30 // tu le pasas 30 a la función y la función mete 30 a la variable que es lo mismo que tu quieres pero de forma indirecta ;)