Error en el siguiente codigo de agregacion

julian ojeda
01 de Octubre del 2012
He realizado el siguiente código para la solución de ecuaciones cuadráticas mediante el empleo de clases cuya relación es de agregación. El fín del código es tener estas bibliotecas de las clases para poder aplicarlas en cualquier otro programa. Por ejemplo yo las utilizaré conjunto a las bibliotecas Qt para darle una interfaz gráfica.

el código es el siguiente:

Parabola.h
[CODE]#ifndef parabola_h
#define parabola_h

class parabola
{
private:
double Coef;
public:
parabola (double Coef=0);
double getCoef ();
};

#endif
[/CODE]

Parabola.cpp
[CODE]#include "parabola.h"

using namespace std;

parabola::parabola(double Coef=0)
{
if(Coef!=0)
{
this->Coef=Coef;
}
}

double parabola::getCoef()
{
return (this->Coef);
}
[/CODE]

Recta.h
[CODE]#ifndef recta_h
#define recta_h

class recta
{
private:
double Coef;
double Ind;
public:
recta (double Coef=0, double Ind=0);
double getCoef ();
double getInd ();
};

#endif

[/CODE]
Recta.cpp
[CODE]#include "recta.h"

using namespace std;

recta::recta(double Coef=0, double Ind=0)
{
if(Coef!=0)
{
this->Coef=Coef;
}
if (Ind!=0)
{
this->Ind=Ind;
}
}

double recta::getCoef()
{
return (this->Coef);
}

double recta::getInd()
{
return (this->Ind);
}
[/CODE]
Cuadratica.h
[CODE]#ifndef funcionCuadratica_h
#define funcionCuadratica_h
#include "recta.h"
#include "parabola.h"

class cuadratica
{
private:
recta *UnaRecta;
parabola *UnaParabola;
double *raices ;
public:
cuadratica (recta *UnaRecta= NULL, parabola *UnaParabola = NULL);
void setRecta (recta *UnaRecta);
void setParabola (parabola *UnaParabola);
void resolvente ();
double getRaiz1 ();
double getRaiz2 ();
}


#endif[/CODE]
Cuadratica.cpp
[CODE]#include "cuadratica.h"
#include

using namespace std;

cuadratica::cuadratica (recta *UnaRecta=NULL, parabola *UnaParabola=NULL)
{
if(UnaRecta!=NULL)
{
this->UnaRecta=UnaRecta;
}
if (UnaParabola!=NULL)
{
this->UnaParabola=UnaParabola;
}
}
void cuadratica::setRecta (recta *UnaRecta)
{
this->UnaRecta=UnaRecta;
}

void cuadratica::setParabola (parabola *UnaParabola)
{
this->UnaParabola=UnaParabola;
}

void cuadratica::resolvente ()
{
double coef [3];

if(this->UnaParabola!=NULL)
{
coef[0]=this->UnaParabola->getCoef();
}
else
{
coef[0]=0;
}
if(this->UnaRecta!=NULL)
{
coef[1]=this->UnaRecta->getCoef();
coef[2]=this->UnaRecta->getInd();
}
else
{
coef[1]=0;
coef[2]=0;
}
this->raices = new double [2];
this->raices [0] = ((- coef[1])+sqrt((pow(coef[1],2))-(4*coef[0]*coef[2]))/(2*coef[0]);
this->raices [1] = ((- coef[1])-sqrt((pow(coef[1],2))-(4*coef[0]*coef[2]))/(2*coef[0]);
}

double cuadratica::getRaiz1()
{
return(this->raices[0];
}

double cuadratica::getRaiz2()
{
return(this->raices[1];
}
[/CODE]

Main.cpp
[CODE]#include
#include
#include "cuadratica.h"


using namespace std;

int main(int argc, char *argv[])
{
cuadratica *UnaFuncion;
recta *UnaRecta;
parabola *UnaParabola;
double Coef, Ind;

cout