Ejemplo de clases en C++

Ejemplo de Clases en C++ Índice 1 CLASE PUNTO.......................................................................

Views 150 Downloads 3 File size 110KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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: 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 //--------------------------------------------------------------------------#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