Alguien me puede decir que le pasa a mi código. Cuando intento crear una variable de tipo Segmento me da error y no se por qué. Además de si alguien ve algo que no está del todo bien que lo diga.
#include <iostream>
#include <cmath>
using namespace std;
class Punto {
private:
double ejex, ejey;
public:
Punto();
Punto(double x, double y);
void SetP(double x, double y);
double GetX();
double GetY();
double distanciacon(Punto b);
};
Punto::Punto(double x, double y)
{
(*this).ejex=x;
(*this).ejey=y;
}
Punto::Punto()
{
(*this).ejex=0;
(*this).ejey=0;
}
void Punto::SetP(double x, double y)
{
(*this).ejex=x;
(*this).ejey=y;
}
double Punto::GetX()
{
return ejex;
}
double Punto::GetY()
{
return ejey;
}
double Punto::distanciacon(Punto b)
{
return sqrt(pow((*this).ejex-b.ejex,2)+pow((*this).ejey-b.ejey,2));
}
class Segmento{
private:
Punto p1, p2;
public:
Segmento(Punto punto1, Punto punto2);
void SetS(Punto punto1, Punto punto2);
Punto GetP1();
Punto GetP2();
};
Segmento::Segmento(Punto punto1, Punto punto2)
{
(*this).p1=punto1;
(*this).p2=punto2;
}
void Segmento::SetS(Punto punto1, Punto punto2)
{
(*this).p1=punto1;
(*this).p2=punto2;
}
Punto Segmento::GetP1()
{
return p1;
}
Punto Segmento::GetP2()
{
return p2;
}
int main()
{
Punto p1, p2;
double x1, x2, y1, y2;
cout << "Introduce un puntos: ";
cin >> x1 >> y1;
cout << "Introduce otro punto: ";
cin >> x2 >> y2;
p1.SetP(x1,y1);
p2.SetP(x2,y2);
cout << "Primer punto: " << "(" << p1.GetX() << "," << p1.GetY() << ")" << endl;
cout << "Segundo punto: " << "(" << p2.GetX() << "," << p2.GetY() << ")" << endl;
cout << "Distancia entre los dos puntos: " << p1.distanciacon(p2) << endl;
Segmento s1;