Programación General > C/C++

 aplicacion de java a c++

<< < (2/2)

killrazor:
Hola,
tampoco estaria mal si los setters y getters los haces inline. Es una de las grandes ventajas de C++ y ganas algo de velocidad. Si programas en C++, ademas, puedes usar los namespace, para que tus librerias tengan paralelismo con los packages de java.

Lo tercero que veo es que usas las clases asi:

--- Código: C++ --- #     punto* p1 = new punto();#     punto* p2 = new punto(0,0);  Pero C++ te da la facilidad de hacerlo de manera estatica o dinamica (que es como tu lo haces, con el new). De manera estatica se puede hacer asi

--- Código: C++ --- #    punto p1 = punto();  

dunkelheit:
muchas gracias por su ayuda.. me sirvio mucho esta parte

#
#     Punto pt1; // mejor instanciar directamente, en la pila (sin hacer un new)
#     Punto pt2(2,3);

y tmb ver q OPERATOR era una palabra reservada yo pensaba que era un nombre de metodo cualquiera ...u.u errores de principiante ahora si me corrio el programa ..de verdad le agradesco a todos ustedes ^^

dunkelheit:
disculpenme denuevo pero tratando de implementar mas el programa hize una clase heredada llamada circulo que coje los puntos de la clase punto... en java el equals es asi


--- Código: Java ---public boolean equals (Object refo) {        if(refo instanceof circUlo){            pUnto otrop = (pUnto)refo;            pUnto estepUnto = new pUnto(super.getX(),super.getY());            circUlo otroc = (circUlo)refo;            return((super.equals(otrop)) && this.radio == otroc.radio);        }        else return false;} 
asi que como ustedes me explicaron del operator == trate de hacerlo asi


--- Código: C++ ---bool Circulo::operator ==(const Circulo& ref) {           Circulo otroc = (Circulo)ref;        punto otrop = (punto)ref;        punto estepunto(punto::getX(),punto::getY());        return((punto::operator ==(otrop)) && (this->radio == otroc.radio));      } 
en el main implemente esto

Circulo c1;
Circulo c2(1,1,1);

y cuando pongo la condicion


--- Código: C++ ---if(c1 != c2){          cout<<"c1 != c2"<<endl;      }else{          cout<<"c1 == c2"<<endl;    } 
me sale error : no match for 'operator!=' in 'c1 != c2'

y cuando pongo


--- Código: C++ ---if(c1 == c2){          cout<<"c1 == c2"<<endl;      }else{          cout<<"c1 != c2"<<endl;    } 
me vota verdadero  C1 == C2 cuando deberia ser falso
me e enredado un poco haciendo el operator cuando es de una clase heredada espero que me puedan ayudar . gracias ^^

r0d:
Si quieres utilizar el operador !=, tienes que definirlo. Es igual que con el operador ==.
Luego, no entiendo tu codigo. ¿Porque circulo hereda de punto? Es que vamos, un circulo no tiene nada que ver con un punto ^^

dunkelheit:
solo lo hago para comparacion de los contructores

Circulo c1;
Circulo c2(1,1,1);
donde los primeros 1,1 son heredados de la clase punto(1,1) en c2 y (0,0) para c1
para ver si son iguales. como les dije cuando pongo ==  sale como si fuera true y en verdad es falso ya q  c1 seria (0,0,0) y c2 (1,1,1)
espero q me hayas entendido gracias

EI: juntando mensajes.

bueno gracias por la ayuda es como dijist en un comienzo declare el operador != y me funciono ..gracias ^^

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa