Comparación Java C++
Storyboard 
Java y C++ son muy similares por lo que es relativamente facil transforar un tipo de código en el otro.
ID:(1038, 0)
Estructura de Clases
Beschreibung 
Una clase en Java tiene la forma ``` class my_demo_class { // fields private int x; // constructor public demo(){ ... code ... } // method public int my_demo_method(int i){ ... code ... return value; } ``` en que se supuso que se desea que la variable de la clase x fuera privada (opcional). En el caso de C++ la clase se escribe como ``` class my_demo_class { // fields int x; public // constructor demo() : x(0) // initializes { ... code ... } // method int my_demo_method(int i){ ... code ... return value; } }; ``` Las principales diferencias son - sepearción en variables por tipo (privadas, publicas) - constructor con encabezado distinto - método muy similar pero no incluye el public - final de la clase cerrado con ; en C++
ID:(8543, 0)
Estructura de Archivo Header
Beschreibung 
Si el archivo de la clase tiene la forma ``` class democpp { private // fields ... variables ... public ... formatos metodos ... // constructor democpp(... argumentos ...) democpp::democpp(... argumentos ...) { ... code ... } // methods int democpp::metodo(... argumento ...){ ... code ... } int democpp::otrometodo(... argumento ...){ ... code ... } }; ``` el formato se resume en la definición de la clase bajo public. El archivo ".h" se puede definir directamente extrahiendo los formatos de los métodos y del constructor: ``` ... formatos metodos ... // constructor democpp(... argumentos ```
ID:(8553, 0)
Ejemplo de Clase
Beschreibung 
Como el archivo ".h" tiene la forma ``` ... formatos metodos ... // constructor democpp(... argumentos ``` en el ejemplo de la clase abaco esto es ``` double sum(double a,double b); double dif(double a,double b); double prd(double a,double b); double div(double a,double b); //constructor abaco(); ``` que se debe almacenar en el archivo de nombre abaco.h.
ID:(8554, 0)
Ejemplo de Clase
Beschreibung 
Un ejemplo simplificado puede ser una clase que suma, resta, multiplica y divide números. Primero se define la clase en si, esto es los campos privados y los formatos que son públicos: ``` class abaco { private: // fields double a; double b; public: double sum(double a,double b); double dif(double a,double b); double prd(double a,double b); double div(double a,double b); //constructor abaco(); }; ``` Luego se define el constructor, sin formato de retiro y opcionlmente, con argumento ``` abaco::abaco() { } ``` Finalmente se incluyeno los métodos: ``` // method double abaco::sum(double a,double b) { return a + b; } double abaco::dif(double a,double b) { return a - b; } double abaco::prd(double a,double b) { return a * b; } double abaco::div(double a,double b) { if(b != 0){ return a / b; } else { return 0; } } ``` Todo se almacena en un archivo de nombre igual a la clase (abaco) y extensión cpp.
ID:(8552, 0)
Uso de Objetos
Beschreibung 
En el uso de objetos Java y C++ son idénticos. Se pueden ejecutar los métodos mediante la concatenación con puntos. Si el objeto es p y el método la "sum" la suma de dos variables se tiene que ``` double result = p.sum(a,b); ``` donde a y b son valores.
ID:(8555, 0)
Creación de Objetos
Beschreibung 
Una clase en Java tiene la forma ``` my_demo_class object = new my_demo_class(); my_demo_class object = new my_demo_class(arguments); ``` donde my_demo_class es el nombre de la clase yla segunda definición corresponde al caso en que hay argumentos y arguments es la lista de estos. En el caso de C++ los objetos se definen como: ``` my_demo_class object; my_demo_class object(arguments); ``` Las principales diferencias son - C++ realiza las definiciones como cualquier otro tipo de variable no usando el comando new y sin igualar un puntero a un constructor
ID:(8544, 0)
