Como crear una clase en c++
La definición de un clase en c++ es la siguiente:
#ifndef __PUNTO_H__
#define __PUNTO_H__
class punto{
private:
int x;
int y;
public:
punto();
punto(int,int);
int Leerx();
void Fijarx(int);
int Leery();
void Fijary(int);
};
#endif
En este ejemplo creamos una clase punto con dos variable privadas X y Y y que tiene dos constructores y 5 funciones miembro definidas. En el archivo .h ponemos la definición anteriormente mostrada y en el archivo .cpp pondremos las diferentes definiciones de las funciones.
A continuación os mostraré el contenido del fichero .cpp:
#include "punto.h"
punto::punto(){ //constructor
x = 0;
y = 0;
}
punto::punto(int valx, int valy){ //constructor por parámetros
x = valx;
y = valy;
}
void punto::Fijarx(int valx){
x = valx;
}
int punto::Leerx(){
return x;
}
void punto::Fijary(int valy){
y = valy;
}
int punto::Leery(){
return y;
}
A continuación vamos a comentar un poco los puntos clave de la definición de un clase. Primero comentaremos los elementos más importantes de las definición de la clase.
- La definición de la clase punto se introduce dentro de bifurcación #ifndef __PUNTO_H__ ... #endif con objeto de evitar una inclusión múltiple en un fichero fuente.
- La clase punto tiene dos variable privadas. Esto significa que no puedes acceder a esas variable directamente (
punto.x) sino que has de crear un procedimiento de lectura y otro de escritura para esas variables (por ejemplo leerx() y Fijarx(int)). Esto se hace como método de seguridad ya que nadie podrá acceder de forma externa a las variables interna del objeto. - La definición de los diferentes procedimientos los hacemos públicos, ya que son con los métodos que utilizaremos para trabajar con el objeto de tipo punto.
- Toda clase define un constructor y un destructor por defecto, en este caso nos interesa definir un constructor que inicialice los puntos a unas coordenadas por defecto (en este caso 0). La sintaxis en los constructores es la siguiente void punto(); Como podemos ver los constructores tienen el mismo nombre que la clase.
- También definimos un constructor por parámetros, para inicializar el punto en las coordenadas deseadas. En este caso la sintaxis es la siguiente void punto(int,int);
El fichero main.cpp queda de la siguiente forma:
#include
#include
using namespace std;
int main(){
punto p1(-2,2); //constructor por parámetros
punto p2; //constructor por defecto
p2.Fijarx(3); //insertar valores en las variables privadas
p2.Fijary(5);
cout << "p1.Leerx()" << p1.Leerx() << endl;
cout << "p1.Leery()" << p1.Leery() << endl;
cout << "p2.Leerx()" << p2.Leerx() << endl;
cout << "p2.Leery()" << p2.Leery() << endl;
return 0;
}
Esto nos sacará por pantalla los valores de los dos puntos definidos por pantalla. En el siguiente post hablaremos sobre la sobrecarga de operadores. Hasta aquí una breve introducción en la definición de clases en c++.
No hay comentarios:
Publicar un comentario