Diario
de un programador. Día 186
C++.
Crear
clases en archivos separados
Al
igual que lo hicimos en Java en su oportunidad, esta vez veremos cómo crear
clases en archivos separados, con la finalidad de poder dividir el trabajo y
crear clases reutilizables.
Vamos
a crear un ejemplo muy sencillo, se trata de un programa que simplemente
muestra un mensaje. Este mensaje será
creado por una función que se encuentra en una clase que está en otro archivo.
Para este ejemplo, se crearán dos archivos, uno que contendrá la clase main y
otra que contendrá la función del mensaje.
El
archivo que contiene la función del mensaje, será guardado con extensión .h, mientras
que la clase main será creada como siempre en un archivo de extensión .cpp
Voy
a crear ambos archivos. A uno lo llamaré funcion.h y al otro inicio.cpp
Primero
empezaré editando el archivo funcion.h En este archivo crearé una clase y una
función que me permita mostrar un simple mensaje por pantalla. Esto quedaría de
la siguiente manera:
#include<iostream>
using std::cout;
using
std::endl;
class
ClaseMensaje{
public:
void funcionSaludo(){
cout << "Mensaje de prueba"<< endl;
}
};
Como
se puede ver, es una simple clase con una función que muestra un mensaje. Ahora
voy a editar el archivo inicio.cpp, el cual contiene la función main y enlazar
la clase creada en él.
Para
poder incluir la clase anteriormente creada, se debe escribir la línea #include
"funcion.h". Al hacer esto, la clase queda enlazada al archivo cpp y
se podrá trabajar normalmente como se había hecho hasta ahora. Esto quedaría de
la siguiente manera:
#include<iostream>
#include "funcion.h"
using
std::cout;
using
std::endl;
int main(void){
ClaseMensaje mensaje;
mensaje.funcionSaludo();
return 0;
}
Al
compilar y ejecutar este pequeño ejemplo, esto es lo que muestra por la
pantalla
Vamos
a ver otro ejemplo. En esta oportunidad vamos a crear un programa que solicite
un nombre y una edad. Esto es algo más complejo que el ejemplo anterior pero no
tanto. Las funciones que guarden estos datos, se encontrarán en otra clase. Lo
primero que voy a crear será la clase de las funciones. Esto quedaría de la
siguiente manera:
//archivo.h – clase que mantiene
funciones
#include<iostream>
#include<string>
using
std::string;
//prototipo
void setEdad(int);
void setNombre(string);
int getEdad();
string getNombre();
class
ClaseFuncion{
private:
int edad;
string nombre;
public:
//constructor
ClaseFuncion(){
edad = 0;
nombre = "";
}
//funciones set
void setEdad(int ed){
edad = ed;
}
void setNombre(string nom){
nombre = nom;
}
//funciones get
int getEdad(){
return edad;
}
string getNombre(){
return nombre;
}
};
//Archivo.cpp
– archivo principal
#include<iostream>
#include<string>
#include
"Funciones.h"
using
std::cout;
using
std::cin;
using
std::endl;
using
std::string;
using
std::getline;
int
main(void){
int edad;
string nombre;
ClaseFuncion datos;
cout << "Ingresa tu nombre: ";
getline(cin, nombre);
cout << "Ingresa tu edad: ";
cin >> edad;
datos.setNombre(nombre);
datos.setEdad(edad);
cout << "Nombre ingresado: " << datos.getNombre()
<< endl;
cout << "Edad ingresada: " << datos.getEdad()
<< endl;
return 0;
}
Como se puede apreciar, en este código
se utilizó las funciones get y set para poder recuperar los valores que fueron
solicitados en la clase principal. Esto es todo por ahora. Saludos.
Gustavo J. Cerda Nilo
Noviembre 2016
No hay comentarios:
Publicar un comentario