Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejemplo de Clases en C
Ejemplo de Clases en C
ndice
CLASE PUNTO...........................................................................................................................................1
1.1
1.2
FICHERO PUNTO.H................................................................................................................................1
FICHERO PUNTO.CPP ...........................................................................................................................1
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() ;
};
//--------------------------------------------------------------------------#endif
MGB
//--------------------------------------------------------------------------Punto::Punto( )
{
x=y=0;
}
//--------------------------------------------------------------------------Punto::Punto( double a , double b )
{
x=a;
y=b;
}
//--------------------------------------------------------------------------// Destructor
//--------------------------------------------------------------------------Punto::~Punto()
{
}
2 Clase Rectngulo
2.1 Fichero Rectangulo.h
//--------------------------------------------------------------------------#ifndef RectanguloH
#define RectanguloH
//--------------------------------------------------------------------------#include "Punto.H"
//--------------------------------------------------------------------------class Rectangulo: public Punto
{
MGB
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
MGB
//--------------------------------------------------------------------------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
//--------------------------------------------------------------------------// 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
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
//--------------------------------------------------------------------------Cilindro::Cilindro ( ): Circulo()
{
altura = 15 ;
}
//--------------------------------------------------------------------------Cilindro::Cilindro( Circulo c, double a): Circulo( c)
{
altura = a ;
}
//---------------------------------------------------------------------------
MGB
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() ;
//---------------------------------------------------------------------------
MGB
getch() ;
return 0;
}
//---------------------------------------------------------------------------
MGB