User: alciro    User
 

Programación en C++ Builder

Share |
 Arrays (matrices)
 Punteros
3. Ejemplo de clase en c++
8. Métodos de la clase AnsiString
 Proyectos en C++
 Packages, distribuir una aplicación sin instalación
 Ordenación por intercambio o burbuja
 Funciones de cadenas de caracteres string.h

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
Loading

copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |