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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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).
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.

Es parte de