• Miércoles 6 de Noviembre de 2024, 09:53

Autor Tema:  Hola, podeis mirar y decirme el error de compilacion  (Leído 1305 veces)

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Hola, podeis mirar y decirme el error de compilacion
« en: Martes 30 de Septiembre de 2008, 18:13 »
0
Hola  a todos,estoy empezando a trabajar con objetos y soy nuevo en este mundo de los objetos, por eso estoy implementando un pequeño programita y tengo un error de compilacion ,pero no se el porque¡¡

este es el programita y el error que me da dice:


/*
Punto.cpp:33: error: el prototipo para ‘Punto::Punto(double, double)’ no coincide con ningún otro en la clase ‘Punto’
Punto.cpp:6: error: los candidatos son: Punto::Punto(const Punto&)
Punto.cpp:6: error:                 Punto::Punto()

*/

#include<iostream>
#include<math.h>
//#include"Punto.h"
using namespace std;

class Punto{

   private:
      double x,y;
   public:
      void SetX(double vx);
      void SetY(double vy);
      Punto Translacionar(double d);
      double Distancia(Punto p2);
      double GetX();
      double GetY();
};

/*
class Punto{

   public:
      Punto(double vx,double vy);
};
*/
/*
Punto::Punto(){
   x=0;
   y=0;
}
*/

Punto::Punto(double vx,double vy){

   SetX(vx);
   SetY(vy);

}

void Punto::SetX(double vx){

   if(vx<0) x=0;
   else x=vx;
}
/*
Punto::Punto(double vx,double vy){

   SetX(vx);
   SetY(vy);

}
*/
/*
Punto Punto::Translaccionar(double d){

Punto paux;
   paux.SetX(d+x);
   paux.SetY(d+y);

return paux;

}
*/

double Punto::Distancia (Punto p2){

   return sqrt(pow(x-p2.x,2) + pow(y-p2.y,2));

}

double Punto::GetX(){

 return x;
}
double Punto::GetY(){

return y;
}

int main(){

Punto p1,p2;

p1.SetX(-3);
p2.SetX(+6);

cout<<p1.Distancia(p2);
cout<<endl;
cout<<p2.Distancia(p1);
cout<<endl;

//p1=p2.Translacionar(81);

cout<<p1.GetX()<<"-"<<p1.GetY();
cout<<endl;
cout<<p2.GetX()<<"-"<<p2.GetY();
cout<<endl;
}



Muchas gracias,os agradecería vuestra ayuda,gracias.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Hola, podeis mirar y decirme el error de compilacion
« Respuesta #1 en: Martes 30 de Septiembre de 2008, 19:21 »
0
Consejo: utiliza [ code][ /code] para que tu codigo sea mas facil de leer.

Ahora, respecto a tu problema, lo que sucede es que no estas declarando el metodo constructor Punto(double vx, double vy) (lo tienes como comentario), ni un constructor por defecto. Pasa algo parecido con los metodos SetY y Traslacionar, y tambien te falta definir la implementacion del metodo void SetY(double vy);

deberias tener algo como:

Definicion de clase:
Código: C
  1.  
  2. class Punto{
  3.  
  4. private:
  5.     double x,y;
  6. public:
  7.     Punto();
  8.     Punto(double vx,double vy);
  9.     void SetX(double vx);
  10.     void SetY(double vy);
  11.     Punto Translacionar(double d);
  12.     double Distancia(Punto p2);
  13.     double GetX();
  14.     double GetY();
  15. };
  16.  
  17.  

Implementacion de clase:
Código: C
  1.  
  2. Punto::Punto()
  3. {
  4. }
  5.  
  6. Punto::Punto(double vx,double vy){
  7.  
  8.     SetX(vx);
  9.     SetY(vy);
  10.  
  11. }
  12.  
  13. void Punto::SetX(double vx){
  14.  
  15.     if(vx<0) x=0;
  16.     else x=vx;
  17. }
  18.  
  19. void Punto::SetY(double vy)
  20. {
  21. }
  22.  
  23. Punto Punto::Translacionar(double d)
  24. {
  25.     Punto paux;
  26.     paux.SetX(d+x);
  27.     paux.SetY(d+y);
  28.  
  29.     return paux;
  30. }
  31.  
  32. double Punto::Distancia (Punto p2){
  33.  
  34.     return sqrt(pow(x-p2.x,2) + pow(y-p2.y,2));
  35.  
  36. }
  37.  
  38. double Punto::GetX(){
  39.  
  40.     return x;
  41. }
  42. double Punto::GetY(){
  43.  
  44.     return y;
  45. }
  46.  
  47.  

Por cierto, en tu implementacion original, pusiste Translaccionar en lugar de Translacionar

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: Hola, podeis mirar y decirme el error de compilacion
« Respuesta #2 en: Martes 30 de Septiembre de 2008, 19:46 »
0
Gracias por prestarme atencion y decirme los fallos,sobre todo para aprender,Muchas Gracias.