Documentos de Académico
Documentos de Profesional
Documentos de Cultura
// Funciones getter
string getnombre()
{
cout<< "Nombre: " << this->nombre << endl; // Muestra el nombre en pantalla
return this->nombre; // retorna el nombre a main a la sentencia
// alu1.getnombre()
}
void getedad()
{
cout<< "Edad: " << this->edad << endl;
}
void getpromedio()
{
cout<< "Promedio: " << this->promedio << endl << endl;;
}
// Funciones setter
void setnombre(string nom)
{
this->nombre=nom;
}
void setedad(int ed)
{
this->edad=ed;
}
void setpromedio(double prom)
{
this->promedio=prom;
}
};
int main()
{
cout<< endl << "Vamos a crear"<<endl<<"al objeto alu1 usando el constructor
por defecto que no tiene argumentos"<<endl;
cout <<endl<<"Apriete cualquier tecla para continuar" << endl <<endl;
getche();
Alumno alu1=Alumno(); // La explicación de esta sentencia la hicimos
// en clase, pero les aclaro que después del signo =
// viene Alumno() que es un llamado al constructor que
// está más arriba.
// Estas tres sentencias comentadas más abajo se podrían usar si los atributos
// fueran públicos, pero como son privados el compilador no lo va a permitir
//cout<<"Nombre: "<<alu1.nombre<<endl; Esta y las dos de abajo dará error
// porque son privados
//cout<<"Edad: "<<alu1.edad<<endl;
//cout<<"Promedio: "<<alu1.promedio<<endl;
cout << "Datos del objeto alu1 recien creado e inicializao por el constructor por
defecto:" << endl;
alu1.getnombre(); // Como los atributos son privados, la única manera
// de accederlos es usando métodos públicos de la clase
// esos son getnombre, getedad y getpromedio.
// como se ve, se invocan poniendo alu1.getnombre()
// alu1.getedad() y alu1.getpromedio(). Estas sentencias
// significan lo siguiente: al objeto alu1 le pido
// que muestre su nombre, luego su edad y luego su promedio
// En otras palabras le pido al objeto alu1 que ejecute el
// método que está después del punto(alu1.getnombre).
// Un purista de Object Oriented va a decir que al objeto
// alu1 le enviamos un mensaje para que muestre su nombre
// o su edad o su promedio.
// ver más arriba lo que hacen getnombre, getedad y
// getpromedio.
alu1.getedad(); // Idem
alu1.getpromedio(); // Idem
cout << "Vamos a setear los datos edad y promedio de Juan que han
cambiado" << endl;
cout << "Apriete cualquier tecla para continuar" << endl <<endl;
getche();
alu1.setedad(26); // Le pido al objeto alu1 que setee su edad
// Ver más arriba lo que hace setedad.
alu1.setpromedio(9); // Idem para promedio
cout << "Datos del objeto alu1 modificados:" << endl;
//Las tres sentencias que siguen ya las explicamos más arriba
alu1.getnombre();
alu1.getedad();
alu1.getpromedio();
cout<< endl << "Vamos a crear al objeto alu2 usando el constructor
sobrecargado que tiene argumentos" <<endl;
cout << "Apriete cualquier tecla para continuar" << endl <<endl;
getche();
Alumno alu2=Alumno("Ana",22,9.25); // Alumno alu2 crea al objeto alu2 en
// memoria pero vacío, luego
// =Alumno("Ana",22,9.25) invocará al
// método sobrecargado y le mandalos datos
// para que los ponga en los atributos
// del objeto alu2.
cout << "Datos del objeto alu2:" << endl;
// Creo que a esta altura sabrán que hacen las tres sentencias que siguen
alu2.getnombre();
alu2.getedad();
alu2.getpromedio();
// Lo que viene que está comentado lo pueden probar, si tienen tiempo,
// por ahora no es obligatorio
/*cout << "Ejemplo para acceder a datos de los objetos alu1 y alu2 cuando son
declarados public" << endl;
cout << "Si no los hubiéramos declarados public en la clase Alumno hubiera
dado error por que por defecto son private" << endl;
cout << "Apriete cualquier tecla para continuar" << endl <<endl;
getche();
cout << alu2.nombre << endl;
cout << alu1.nombre << endl;
cout << "Edad de Juan: " << alu1.edad << endl;
cout << "Promedio de Ana: " <<alu2.promedio << endl;
*/
return 0;
}