Compilando o código abaixo utilizado em uma main que eu não consigo modificar dá o seguinte erro: undefined reference to Ponto2D::Ponto2D(double, double)
se eu modifico o construtor Ponto2D no arquivo cpp para: Ponto2D::Ponto2D(double, double) da o seguinte erro: error: extra qualification ‘Ponto2D::’ on member ‘Ponto2D’ [-fpermissive] Ponto2D::Ponto2D (double X, double Y)
como posso eliminar esse erro? não estou sabendo declarar da maneira correta o struct
Arquivo .hpp:
#include <iostream>
#include <iomanip>
#include <cmath>
#include <math.h>
#ifndef PONTO2D
#define PONTO2D
using namespace std;
struct Ponto2D{
double x;
double y;
Ponto2D(double , double );
Ponto2D();
double calcular_distancia();
};
#endif // PONTO2D
Arquivo .cpp:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
struct Ponto2D
{
double x;
double y;
Ponto2D (double X, double Y)
{
x=X;
y=Y;
}
Ponto2D()
{
}
double calcular_distancia(Ponto2D* ponto)
{
double dx = ponto->x - this->x;
double dy = ponto->y - this->y;
return sqrt(pow((dx-x),2) + pow((dy-y),2));
}
};