La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

6. Clases y Métodos..  6.1 Structs  6.2 Funciones  6.3 Namespaces  6.4 Clases.

Presentaciones similares


Presentación del tema: "6. Clases y Métodos..  6.1 Structs  6.2 Funciones  6.3 Namespaces  6.4 Clases."— Transcripción de la presentación:

1 6. Clases y Métodos.

2  6.1 Structs  6.2 Funciones  6.3 Namespaces  6.4 Clases

3

4  Nos permiten agrupar varios datos, aunque sean de distinto tipo, que mantengan alguna relación, permitiendo manipularlos juntos, con un mismo identificador. struct [ ] { [ [,,...]]; … } [ [,,...];

5  En el interior de una estructura podemos definir todos los atributos que resulten necesarios.  Son estructuras usadas básicamente para contener variables; como una clase sin métodos para llamarlos de alguna manera, aunque como veremos también se pueden usar métodos en ellas.

6 struct Jugador { char Nombre[65]; float posicionX; float posicionY; int monedas; bool grande; } mario;

7 mario.monedas++; mario.nombre = “Mario”; mario.posicionX = 0; mario.posicionX = 100; mario.grande = false;

8 struct A { int i; int j; int k; }; A ejemploA = {10, 20, 30}; B ejemploB = {10, {'a', 'b'}, 20}; struct B { int x; struct C { char c; char d; } y; int z; };

9 Jugador Luigi = {“Luigi”, 0, 100, 0, false};

10 struct Point { int x; int y; Point() { x = 0; y = 0; } void setPoint(int x, int y) { this->x = x; this->y = y; }

11  ¿Cómo hace la función para referirse a un dato de un objeto en concreto?  Usando el puntero this. this->x = x; this->y = y;

12

13  Son un conjunto de instrucciones que realizan una tarea específica.  Sirven para abstraer un algoritmo.  En general, toman unos valores de entrada, llamados parámetros y proporcionan un valor de salida o valor de retorno.

14  Al igual que las variables, las funciones deben declararse y definirse.  Una declaración es simplemente una presentación, una definición contiene las instrucciones con las que realizará su trabajo la función. También se les denomina “prototipo” a las declaraciones. func( ); int min(int a, int b); float max(float a, float b);

15 func( );  Es el valor que puede o no entregarnos la función.  Se utiliza void, en la declaración, si no necesitamos un valor de retorno.  En general se puede utilizar cualquier tipo de datos para el retorno: ◦ float,int, char, char[], etc…

16 return ;  Si la función retorna algún tipo de datos, se utiliza return para retornar un valor de ese tipo de datos. int Mayor(int a, int b) { if(a > b) return a; else return b; }

17  Algunas veces nos puede interesar que ciertos parámetros que necesitan una función no sea necesario proporcionarlos siempre. Esto suele suceder cuando esos parámetros casi siempre se usan con un mismo valor. void Inicializar(int x = 0, int y = 0); void funcion(int x, int y) { … setPosition(x, y); }

18 void funcion(int = 1); // Legal void funcion1(int a, int b=0, int c=1); // Legal void funcion2(int a=1, int b, int c); // Ilegal void funcion3(int, int, int=1); // Legal

19  Se pueden definir varias funciones con el mismo nombre, con la única condición de que el número y/o el tipo de los parámetros sean distintos.  El compilador decidirá cual de las versiones ocupar después de analizar el número y el tipo de los parámetros. int min(int a, int b); char min(char a, char b); double min(double a, double b); float min(float a, float b);

20 int min(int a, int b); int min(int a, int b, int c); int min(int a, int b) { return (a < b) ? a : b; } int min(int a, int b, int c) { int d = min(a,b); return (d < c) ? d : c; }

21  Se crea una función para que se ejecute cuando se utilice un operador.  Se pueden sobrecargar todos los operadores básicos. operator ( ); operator ( ) { ; }

22

23  Espacio de nombres.  Nos ayuda a evitar problemas con identificadores en grandes proyectos.  Así pueden existir variables y funciones con el mismo nombre, declaradas en diferentes ficheros fuentes, cuando se declaran en distintos espacios de nombre.

24 namespace [ ] {...... }

25 // Fichero de cabecera "puntos.h" namespace 2D { struct Punto { int x; int y; }; } namespace 3D { struct Punto { int x; int y; int z; }; }// Fin de fichero

26  Para activar un espacio y ocuparlo por defecto se utiliza la directiva “using”. using namespace ; #include "puntos.h" using namespace 2D; Punto p1; 3D::Punto p2;

27  Nos permite utilizar el código en forma de librería.  Por ejemplo un motor de videojuegos, podría tener los siguientes namespace: render, fisica, sonido, red, ia, para diferenciar cada uno de sus componentes, y a su vez, cada uno de esos componentes puede dividirse en más namespaces para así tener un orden lógico de los mismos.

28  Como mostramos, los namespace sirven para tener un orden lógico en el código, por lo tanto tiene sentido colocar un namespace dentro de otro. namespace Motor { namespace Render { namespace Particulas { … }

29

30  Son el principio de la programación orientada a objetos.  Una clase representa un objeto genérico del mundo real.  Una clase define un conjunto de funciones y atributos.

31 class [ ] { } [ ];  La lista de clases bases, será la herencia.  La lista de miembros son las funciones y atributos.

32 class Tablero { private: int x, int y; public: Tablero(int x, int y); void Marcar(int marca, int x, int y); void getMarca(int x, int y); }

33


Descargar ppt "6. Clases y Métodos..  6.1 Structs  6.2 Funciones  6.3 Namespaces  6.4 Clases."

Presentaciones similares


Anuncios Google