Clases y Objetos
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
Descripción 
Una clase en Java tiene la forma```class demojava { // fields private int x; // constructor public demojava(... argumentos ...){ ... code ... } // method public formato demometodo(... argumentos ...){ ... 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 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 ... }};```Algunas diferencias claves son:- se definen las variables globales (bajo privado)- se definen los formatos de los métodos- la clase se incluye en la definición- el constructor se define con el nombre de la clase escrito dos veces y separado por "::"- los métodos tienen su nombre propio y se les antepone el nombre de la clase separado por "::"
ID:(8543, 0)
Estructura de Archivo Header
Descripción 
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 Archivo Header
Descripción 
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);//constructorabaco();```que se debe almacenar en el archivo de nombre abaco.h.
ID:(8554, 0)
Ejemplo de Clase
Descripción 
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:```// methoddouble 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
Descripción 
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
Descripción 
Una clase en Java tiene la forma```myclass object = new myclass();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:```myclass object;myclass 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)
