You are on page 1of 10

Ejemplo de Clases en C

++

Índice

1

CLASE PUNTO...........................................................................................................................................1
1.1
1.2

2

CLASE RECTÁNGULO ............................................................................................................................2
2.1
2.2

3

FICHERO CIRCULO.H .............................................................................................................................4
FICHERO CIRCULO.CPP .........................................................................................................................5

CLASE CICLINDRO .................................................................................................................................6
4.1
4.2

5

FICHERO RECTANGULO.H .....................................................................................................................2
FICHERO RECTANGULO.CPP ..................................................................................................................3

CLASE CIRCULO ......................................................................................................................................4
3.1
3.2

4

FICHERO PUNTO.H................................................................................................................................1
FICHERO PUNTO.CPP ...........................................................................................................................1

FICHERO CICLINDRO.H .........................................................................................................................6
FICHERO CILINDRO.CPP ........................................................................................................................6

EJEMPLO DE UTILIZACIÓN DE ESTAS CLASES ............................................................................7

Ejemplo de Clases en C++

1 Clase Punto
1.1 Fichero Punto.H
//--------------------------------------------------------------------------// Clase Punto
//--------------------------------------------------------------------------#ifndef PuntoH
#define PuntoH
//--------------------------------------------------------------------------#include "math.h"
//--------------------------------------------------------------------------class Punto
{
private:
double x , y ;
// Constructores para inicializar las coordenadas
public:
Punto ( ) ;
Punto ( double a , double b ) ;
~Punto() ;

void trasladar ( double a , double b ) ; //incrementa las coordenadas del punto
double distancia ( Punto pto ) ;
// devuelve la distancia entre este punto y el argumento pto
void ponX( double _x) ;
void ponY( double _y) ;
double dameX( ) ;
double dameY( ) ;

virtual double area()
{ return( 0);}
virtual double perimetro() { return( 0);}

};
//--------------------------------------------------------------------------#endif

1.2 Fichero Punto.CPP
//--------------------------------------------------------------------------#include "Punto.h"
//--------------------------------------------------------------------------// Constructores

MGB

1

Ejemplo de Clases en C++

//--------------------------------------------------------------------------Punto::Punto( )
{
x=y=0;
}
//--------------------------------------------------------------------------Punto::Punto( double a , double b )
{
x=a;
y=b;
}
//--------------------------------------------------------------------------// Destructor
//--------------------------------------------------------------------------Punto::~Punto()
{
}

//--------------------------------------------------------------------------// Otros Métodos
//--------------------------------------------------------------------------void Punto::trasladar ( double a , double b )
{
x += a ;
y += b ;
}
//--------------------------------------------------------------------------double Punto::distancia( Punto pto )
{
return( sqrt( pow( x - pto.x, 2) + pow( y - pto.y, 2))) ;
}
//--------------------------------------------------------------------------void Punto::ponX( double _x)
{
x = _x ;
}

2 Clase Rectángulo
2.1 Fichero Rectangulo.h
//--------------------------------------------------------------------------#ifndef RectanguloH
#define RectanguloH
//--------------------------------------------------------------------------#include "Punto.H"
//--------------------------------------------------------------------------class Rectangulo: public Punto
{

MGB

2

Ejemplo de Clases en C++

private:
double lh, lv ;
// Constructores para inicializar las coordenadas
public:
Rectangulo ( ) ;
Rectangulo( Punto p, double _lh, double _lv) ;
~Rectangulo() ;
void ponLH( double _lh) ;
void ponLV( double _lv) ;
double dameLH( ) ;
double dameLV( ) ;
virtual double area() ;
virtual double perimetro() ;
};
#endif

2.2 Fichero Rectangulo.cpp
//--------------------------------------------------------------------------#include "Rectangulo.h"
//--------------------------------------------------------------------------Rectangulo::Rectangulo ( ): Punto()
{
lv = 10 ;
lh = 10 ;
}
//--------------------------------------------------------------------------Rectangulo::Rectangulo( Punto p, double _lh, double _lv): Punto( p)
{
lh = _lh ;
lv = _lv ;
}
//--------------------------------------------------------------------------Rectangulo::~Rectangulo()
{
}
//--------------------------------------------------------------------------void Rectangulo::ponLH( double _lh)
{
lh = _lh ;
}
//--------------------------------------------------------------------------void Rectangulo::ponLV( double _lv)
{
lv = _lv ;
}

MGB

3

Ejemplo de Clases en C++

//--------------------------------------------------------------------------double Rectangulo::dameLH( )
{
return( lh) ;
}
//--------------------------------------------------------------------------double Rectangulo::dameLV( )
{
return( lv) ;
}
//--------------------------------------------------------------------------double Rectangulo::area()
{
return( lh * lv) ;
}
//--------------------------------------------------------------------------double Rectangulo::perimetro()
{
return( 2 * lh + 2 * lv) ;
}
//---------------------------------------------------------------------------

3 Clase Circulo
3.1 Fichero circulo.h
//--------------------------------------------------------------------------// Circulo
//--------------------------------------------------------------------------#ifndef CirculoH
#define CirculoH
//--------------------------------------------------------------------------#include "Punto.H"
//--------------------------------------------------------------------------class Circulo: public Punto
{
private:
// Constructores para inicializar las coordenadas
public:
Circulo ( ) ;
Circulo( Punto p, double r) ;
~Circulo() ;
virtual double area() ;
virtual double perimetro() ;
};
#endif

MGB

4

Ejemplo de Clases en C++

3.2 Fichero Circulo.cpp
//--------------------------------------------------------------------------#include "Circulo.h"

//--------------------------------------------------------------------------// Constructores
//--------------------------------------------------------------------------Circulo::Circulo ( ) :Punto()
{
}
//--------------------------------------------------------------------------Circulo::Circulo( Punto p, double r): Punto( p)
{
}
//--------------------------------------------------------------------------// Destructor
//--------------------------------------------------------------------------Circulo::~Circulo()
{
}
{
}
{
}
//--------------------------------------------------------------------------double Circulo::area()
{
const double PI = 3.1514 ;
return( PI * pow( radio, 2)) ;
}
//--------------------------------------------------------------------------double Circulo::perimetro()
{
const double PI = 3.1514 ;
return( 2 * PI * radio) ;
}
//---------------------------------------------------------------------------

MGB

5

Ejemplo de Clases en C++

4 Clase Ciclindro
4.1 Fichero Ciclindro.h
//--------------------------------------------------------------------------#ifndef CilindroH
#define CilindroH
//--------------------------------------------------------------------------#include "Circulo.H"
//--------------------------------------------------------------------------class Cilindro: public Circulo
{
private:
double altura ;
// Constructores para inicializar las coordenadas
public:
Cilindro ( ) ;
Cilindro( Circulo c, double a) ;
~Cilindro() ;
void ponAltura( double _a) ;
double dameAltura( ) ;
virtual double area() ;
// virtual double perimetro() ; NO TIENE
};
//--------------------------------------------------------------------------#endif

4.2 Fichero Cilindro.cpp
//--------------------------------------------------------------------------#include "Cilindro.h"

//--------------------------------------------------------------------------Cilindro::Cilindro ( ): Circulo()
{
altura = 15 ;
}
//--------------------------------------------------------------------------Cilindro::Cilindro( Circulo c, double a): Circulo( c)
{
altura = a ;
}
//---------------------------------------------------------------------------

MGB

6

Ejemplo de Clases en C++

Cilindro::~Cilindro()
{
}
//--------------------------------------------------------------------------void Cilindro::ponAltura( double _a)
{
altura = _a ;
}
//--------------------------------------------------------------------------double Cilindro::dameAltura( )
{
return( altura) ;
}
//--------------------------------------------------------------------------double Cilindro::area()
{
const double PI = 3.1514 ;
double aLateral = 2*PI * dameRadio() * altura ;
double base = Circulo::area() ;

return( aLateral + 2 * base) ;
}

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

5 Ejemplo de utilización de estas clases
//--------------------------------------------------------------------------#include <vcl.h>
//--------------------------------------------------------------------------#include "Circulo.h"
#include "Cilindro.h"
#include "conio.h"
#include "iostream.h"
//--------------------------------------------------------------------------int main( int argc, char* argv[])
{
Circulo c1 ; //= new Circulo;
Punto p1 ;
Punto *p2 ;
Cilindro ci( c1, 20) ;
p2 = new Circulo( p1, 30) ;

cout << endl << " Circulo C1" ;
cout << endl << "El centro es: ( " << c1.dameX() << ", " << c1.dameY() << ")";
cout << endl << "El area es: " << c1.area() ;
cout << endl << "El perimetro es: " << c1.perimetro() ;

MGB

7

Ejemplo de Clases en C++

cout << endl ;
cout << endl << " Circulo P2" ;
cout << endl << "El centro es: ( " << p2->dameX() << ", " << p2->dameY() << ")";
cout << endl << "El area es: " << p2->area() ;
cout << endl << "El perimetro es: " << p2->perimetro() ;

cout << endl ;
cout << endl << " Cilindro ci" ;
cout << endl << "El centro es: ( " << ci.dameX() << ", " << ci.dameY() << ")";