Você está na página 1de 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() { 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:
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

MGB 4
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) ;
}

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

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 radio es: " << c1.dameRadio() ;
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 radio es: " << ((Circulo*)p2)->dameRadio() ;
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() << ")";
cout << endl << "El radio es: " << ci.dameRadio() ;
cout << endl << "La altura es: " << ci.dameAltura() ;
cout << endl << "El area es: " << ci.area() ;
//cout << endl << "El perimetro es: " << p2->perimetro() ;

delete p2 ;

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

MGB 8

Você também pode gostar