Benützer:


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.

>Modell

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)