Clases y objetos
Tus propios tipos en C++: datos privados, constructores, destructores, invariantes y objetos que colaboran.
14 aulas · 10 horas de práctica · en el navegador, sin instalar nada
Temario
- De struct a class — La palabra class, por qué todo arranca cerrado, y las dos llaves de la puerta: public y private. El robot que nadie puede teletransportar.
- Constructores — El método que corre solo cuando nace un objeto: darle sus valores de entrada, tener varios constructores y el constructor sin parámetros.
- Lista de inicialización — Que los campos nazcan con su valor en vez de recibirlo después: la lista de inicialización, los campos const, el orden en que nacen y los constructores que delegan.
- Destructores y ciclo de vida — El método que corre cuando un objeto muere: en qué orden mueren, qué pasa con delete, y cómo un destructor devuelve lo que pidió el constructor.
- Invariantes — Lo que un objeto promete que es verdad siempre: el combustible nunca es negativo. Cada método lo cuida, el constructor lo establece, y un setter sin control lo rompe.
- Métodos const — Prometer que un método solo mira y no toca: const al final del método, por qué const & lo exige, y la diferencia entre preguntar y cambiar.
- this y llamadas encadenadas — El puntero al objeto con el que se llamó el método: this->campo cuando los nombres chocan, y return *this para escribir ritmo.conBombo(0).conCaja(2).
- Miembros static — Lo que es de la clase y no de cada objeto: un contador de inscriptos, un solo dado para toda la manada, funciones que se llaman con Clase:: y dónde se definen.
- Composición — Objetos hechos de otros objetos: un robot que tiene un motor y brazos. Cómo nacen las piezas, en qué orden se montan y se desmontan, y cómo se cambia una.
- Clases que colaboran — Un programa con varias clases que se hablan: la mesa le manda un pedido a la cocina. Pasar el objeto por referencia, guardar una referencia a otro objeto, y repartir el trabajo.
- Blackjack con clases — Un blackjack de verdad armado con cuatro clases que colaboran: la carta, el mazo mezclado con semilla, la mano que cuenta sus puntos (con el as que vale 11 o 1) y el jugador que pide hasta plantarse. Al final, la mesa de verdad: jugás vos, leyendo tus decisiones con cin.
- Una clase en .h y .cpp — Separar lo que una clase promete de cómo lo hace: la declaración en el .h, las definiciones con Ascensor:: en el .cpp, y qué hace el linker con todo eso.
- friend, y por qué casi nunca — Una clase que le abre su parte privada a otra: friend class y funciones amigas. Y por qué casi siempre conviene más un método público const: la amistad deja la puerta abierta.
- Simulador de ascensor — El ascensor de un edificio de verdad: pedidos que no se repiten, el algoritmo que sigue para el mismo lado mientras haya a quién buscar, y llamadas que llegan mientras viaja.