Está en la página 1de 5

3.

Ejemplo de clase en c++


Aunque la creación de una clase se puede desarrollar en su totalidad en un único
fichero, no es aconsejable. La mejor opción es crear un proyecto con ficheros
separados para cada cometido. El primer lugar se ha de crear una aplicación con el
nombre Clase que contiene una Unit (fichero con código fuente) con el programa
principal denominado Circulo.cpp. El segundo paso es crear una nueva Unit para
contener el desarrollo de la clase, por ejemplo CCirculo.cpp. La clase necesita de
un fichero de cabecera para su declaración al cual denominamos CCirculo.h.

Pasos:

1. Programa principal: New -> Other.. -> Console Wizard


2. Unit de la clase: New -> Other.. -> Cpp File
3. Fichero de cabecera: New -> Other.. -> Header File

Si hemos realizado correctamente todos los pasos podremos ver los ficheros que
forman parte del proyecto accediendo View->Project Manager tal como se
muestra en la siguiente figura.

Ficheros del proyecto (Project Manager)

Programa principal (Circulo.cpp)

//-----------------------------------------------------------
----------------

#include ‹vcl.h›
#include ‹conio.h›
#include ‹iostream.h›
#include "CCirculo.h"

#pragma hdrstop

//-----------------------------------------------------------
----------------

#pragma argsused
int main(int argc, char* argv[]){
float dat;
CCirculo cir1, cir2, cir3(10);

cout << "Radio del círculo 1: ";


cin >> dat;
cir1.radio(dat);
cout << endl << "Diámetro del círculo 2: ";
cin >> dat;
cir2.diametro(dat);

cout << endl << "Círculo 1, Área = " << cir1.area() << "
perímetro = " << cir1.perimetro() << endl;
cout << endl << "Círculo 2, Área = " << cir2.area() << "
perímetro = " << cir2.perimetro() << endl;
cout << endl << "Círculo 3, Área = " << cir3.area() << "
perímetro = " << cir3.perimetro() << endl;

getch();
return 0;
}
//-----------------------------------------------------------
----------------

Fichero de cabecera con la declaración de la clase (CCirculo.h)

#ifndef CCirculo_h
#define CCirculo_h

class CCirculo{
public: // Variables y funciones de la clase de ámbito
público
CCirculo(); // Constructor por defecto
CCirculo(float); // Constructor sobrecargado
~CCirculo(); // Destructor
radio(float r); // Función para establecer el radio
del círculo
diametro(float d); // Función para establecer el
diámetro del círculo
float area(); // Cálculo del área del
círculo
float perimetro(); // Cálculo del perímetro del círculo

private: // Variables y funciones de la clase de ámbito privado


float *rad;
};

#endif

Fichero con el desrrollo de la clase (CCirculo.cpp)

#include "CCirculo.h"

#define Pi 3.14159265

// Constructor por defecto


CCirculo::CCirculo (){
rad = new float;
*rad = 0;
}

// Constructor sobrecargado
CCirculo::CCirculo(float r){
rad = new float;
*rad = r;
}

// Destructor
CCirculo::~CCirculo(){
delete rad;
}

// Establecer el radio del círculo


CCirculo::radio(float r){
*rad = r;
}

// Establecer el diámetro del círculo


CCirculo::diametro(float d){
*rad = d/2;
}
// Cálculo del área del círculo
float CCirculo::area(){
return Pi*(*rad)*(*rad);
}

// Cálculo del perímetro del círculo


float CCirculo::perimetro(){
return 2*Pi*(*rad);
}

Una vez desarrollada la clase podemos hacer uso del explorador de


clases (CassExplorer) para navegar por su contenido.

ClassExplorer nos proporciona una visión en forma de árbol de los elementos que
forman la clase. Se pueden distinguir las variables de las funciones, los elementos
públicos o privados así como los constructores y el destructor. Mediante el
Explorador de Clases podemos realizar una navegación ágil, haciendo clic sobre los
distintos elementos accedemos a su código.

Estructura de la clase (ClassExplorer)

Cuando se utiliza la clase y a través de cualquier objeto de esta se accede a los


elementos públicos que tiene definidos. El Builder como cualquier IDE, nos
proporciona la ayuda emergente del contenido de la clase tal como muestra
la siguiente figura.
Ayuda emergente de los Objetos en c++ Builder