Sunteți pe pagina 1din 10

Ejemplo de Clases en C++

Índice

1 CLASE PUNTO

 

1

1.1

FICHERO PUNTO.H

1

1.2

FICHERO

PUNTO.CPP

1

2 CLASE RECTÁNGULO

2

2.1

FICHERO

RECTANGULO.H

2

2.2

FICHERO RECTANGULO.CPP

3

3 CLASE CIRCULO

 

4

3.1

FICHERO

CIRCULO.H

4

3.2

FICHERO

CIRCULO.CPP

5

4 CLASE CICLINDRO

6

4.1

FICHERO

CICLINDRO.H

6

4.2

FICHERO

CILINDRO.CPP

6

5 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()

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

{ return( 0);}

}

;

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

#endif

1.2 Fichero Punto.CPP

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

#include "Punto.h"

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

// Constructores

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

{

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

lh

= 10 ; = 10 ;

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

Rectangulo::Rectangulo( Punto p, double _lh, double _lv): Punto( p)

{

}

lh

lv

= _lh ; = _lv ;

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

Rectangulo::~Rectangulo()

{

}

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

void Rectangulo::ponLH( double _lh)

{

lh = _lh ;

}

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

void Rectangulo::ponLV( double _lv)

{

lv = _lv ;

}

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:

double radio ;

// Constructores para inicializar las coordenadas public:

Circulo ( ) Circulo( Punto p, double r) ; ~Circulo() ;

;

void ponRadio( double _r) ;

double dameRadio( ) ;

virtual double area() ; virtual double perimetro() ;

}

#endif

;

Ejemplo de Clases en C++

3.2 Fichero Circulo.cpp

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

#include "Circulo.h"

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

// Constructores

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

Circulo::Circulo ( ) :Punto()

{

radio = 10 ;

}

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

Circulo::Circulo( Punto p, double r): Punto( p)

{

radio = r ;

}

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

// Destructor

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

Circulo::~Circulo()

{

}

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

void Circulo::ponRadio( double _r)

{

radio = _r ;

}

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

double Circulo::dameRadio( )

{

return( radio) ;

}

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

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) ;

}

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

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 ;

}

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

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

Punto *p2 ; Cilindro ci( c1, 20) ;

p1 ;

p2 = new Circulo( p1, 30) ;

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

cout << endl << "El area es:

cout << endl << "El perimetro es: " << c1.perimetro() ;

" << c1.area() ;

Ejemplo de Clases en C++

cout << endl ; cout << endl << " Circulo P2" ;

cout << endl << "El centro es: ( " << p2->dameX() << ", " << p2->dameY() << ")"; cout << endl << "El radio es: " << ((Circulo*)p2)->dameRadio() ;

cout << endl << "El area es:

cout << endl << "El perimetro es: " << p2->perimetro() ;

" << p2->area() ;

cout << endl ; cout << endl << " Cilindro ci" ;

cout << endl << "El centro es: ( " << ci.dameX() << ", " << ci.dameY() << ")"; cout << endl << "El radio es: " << ci.dameRadio() ; cout << endl << "La altura es: " << ci.dameAltura() ;

cout << endl << "El area es:

//cout << endl << "El perimetro es: " << p2->perimetro() ;

" << ci.area() ;

delete p2 ;

getch() ;

return 0;

}

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