C++ : Gestión de memoria con std::unique_ptr (Smart Pointers)

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2024

ความคิดเห็น • 15

  • @alfoorego8380
    @alfoorego8380 3 ปีที่แล้ว +3

    Dios Santo, cómo se agradecen estos contenidos, además rematados con una utilísima descripción del vídeo. Mil gracias, profesor

  • @diegopereira524
    @diegopereira524 4 ปีที่แล้ว +8

    Hace mas de 20 años que desarrollo en C y C++ con Proc C/C++ de Oracle y he visto la evolución del lenguaje desde el '98 cuando estudiaba en la universidad hasta hoy, y lo que explica el profe es excelente, los ejemplos, el uso de punteros y RAII, hasta la buena disposición a disipar las dudas!, Un maestro!. Saludos de Argentina y muy bueno este capitulo.

  • @berwick82
    @berwick82 3 ปีที่แล้ว +1

    Gracias por el video, es de gran ayuda !!

  • @julianperez9157
    @julianperez9157 5 ปีที่แล้ว +1

    Video muy interesante. Espero ansioso mas vídeos sobre punteros inteligentes. Un saludo profe.

  • @andrewjackson508
    @andrewjackson508 4 ปีที่แล้ว +1

    yo me dije a mi mismo, para poder seguir el codigo claro, bueno eso es un puntero a un entero de 32 bits inicializado a null y segui con lo del memory leak , pero como decia el mercenario, imaginar es bueno, saber es mejor. gracias profe

  • @Nico5Sanchez
    @Nico5Sanchez 5 ปีที่แล้ว +2

    Si quiero seguir la Rule of Zero, con los smart pointers, supongo, que como los unique son unicos, no se pueden utilizar, porque si lo hago miembro de una clase, y creo una instancia de esta clase, y la intento copiar, no me dejará ¿O me estoy equivocando?

    • @ProfesorRetroman
      @ProfesorRetroman  5 ปีที่แล้ว +3

      Creo que estás confundiendo términos. La Rule of Zero lo que dice es que siempre que puedas no definas ninguna (Zero) de las funciones miembro especiales de clase: (Constructores de copia, Asignaciones y Destructor). Como unique_ptr encapsula la reserva y liberación de un recurso usando patron RAII, si usas unique_ptr te ahorras tener que hacer eso manualmente, por lo que evitas tener que definir constructor y destructor en tu clase, y con ello tener que aplicar la Rule of Three/Five, que te diría que al haber creado alguna de las funciones miembro especiales, deberías crearlas todas.

  • @vicboma1
    @vicboma1 5 ปีที่แล้ว +2

    Una dudilla profesor, según la explicación del video, 'std::make_unique' actúa como un patrón de construcción muy similar a un 'Método factoria' no? A su vez, la instrucción 'std::unique_ptr' hace que se restrinja esa creación a un solo objeto en memoria. Estamos delante de una factoría de singletons dónde 'std::unique_ptr' almacena y 'std::make_unique' crea?

    • @ProfesorRetroman
      @ProfesorRetroman  5 ปีที่แล้ว +9

      Pues no es exactamente así, Victor. make_unique sí podría asimilarse a una fábrica, pues realiza la reserva y nos devuelve el puntero del tipo que solicitamos. Sin embargo, unique_ptr no se parece en nada a un Singleton. El problema es que interpretas la palabra "unique" erróneamente. Este "unique" se refiere a que sólo puede haber un Smart Pointer apuntando al objeto creado o, lo que es lo mismo, sólo puede haber un propietario. Esto no tiene nada que ver realmente con el concepto de Singleton, que sirve para asegurarse que de un tipo concreto sólo se crea una única instancia. Tanto de unique_ptr's como de los objetos a los que estos apuntan puedes crear tantas instancias como quieras. No limitan para nada en ese sentido. Como digo, el "unique" es un término de gestión de la propiedad, para garantizarse que sólo hay un responsable del recurso reservado (el unique_ptr) y que el responsable liberará el recurso al terminar el tiempo de vida.

  • @digimikeh
    @digimikeh 4 ปีที่แล้ว +3

    A Retroman solo le falta una cosa para ser 100% retro.... poner los colores de tipo Borland en su editor de codigo... y ya esta... ese fondo azul con letras blancas es nostálgico.

    • @coulombio
      @coulombio ปีที่แล้ว +1

      ¿Las letras no eran amarillas? Pregunto.

    • @digimikeh
      @digimikeh ปีที่แล้ว

      @@coulombio yo lo uso actualmente con NeoVim.. usa letras amarillas para reclamar la sintaxis de los tipos y operadores

  • @silose
    @silose 5 ปีที่แล้ว

    👍, Saludos

  • @digimikeh
    @digimikeh 4 ปีที่แล้ว +2

    Ahora C ++ que antes