Programación General > C/C++
aplicacion de java a c++
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
[*] Página Anterior
Ir a la versión completa