131. Programación en C++ || POO || Destructor de Objetos

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 103

  •  6 років тому +15

    💻 Apúntate al curso completo de Programación en C++:
    Hotmart: hotmart.com/es/marketplace/productos/programacion-en-c-v0ivo/N78682741H

  • @mateolinaschain8168
    @mateolinaschain8168 7 років тому +282

    No es que el destructor puedas omitirlo y que no sirva para nada. Es que si estas en un programa tan pequeño como este la memoria utilizada es despreciable. Pero si estas con un videojuego, no te interesa que todos los personajes que vas matando se queden ahi en memoria hasta que mates 500, te maten a ti, y despues se liberen esos 500 personajes que tu mataste. Eso seria inviable, llenaria tu ram innecesariamente y haria el ordenador MUY lento. Es importante que si por ejemplo matamos un personaje, ese personaje hace la animacion de morir y desaparece. En este caso sería importante que dentro del destructor indiquemos que haga su animacion de morir. Por ejemplo: if(vida_personaje

    • @cristian8605ify
      @cristian8605ify 6 років тому +6

      Capo!

    • @Sasplank
      @Sasplank 6 років тому +1

      grosssssssssssssso

    • @T0berius
      @T0berius 6 років тому +3

      Este capitulo lo tendria que haber dado ud. Mateo. Saludos.

    • @minecraftpapiernik1930
      @minecraftpapiernik1930 6 років тому +8

      Estaba buscando dentro de los comentarios algo si alguien daba una respuesta como esta, porque a mí también me surgió esa misma idea.
      Y otra forma de optimización es usando arrays y matrices de memoria dinámica en vez de las normales, e incluso mejor con las pilas, colas, listas y árboles, porque en ellas también se libera memoria y no solo se cambian los datos a cero.
      Es el Método Destructor, delete[ ] o delete

    • @lnicofideo6530
      @lnicofideo6530 6 років тому +1

      @@minecraftpapiernik1930 esacto :v

  • @tedrguez594
    @tedrguez594 5 років тому +84

    Fido, nunca te olvidaremos
    Press ~ to pay respects

  • @idbaronco4194
    @idbaronco4194 5 років тому +16

    También pueden escribir alguna acción dentro del destructor para verificar que su llamado ha sido correcto, por ejemplo escribir dentro cout

  • @digimikeh
    @digimikeh 7 років тому +17

    3:35 .. en caso que no tengan el símbolo curvilínea para el destructor en su teclado, lo pueden hacer también con AltGr + 4, sueltan y luego presionan la barra espaciadora.

  • @andressapXD
    @andressapXD Рік тому +3

    Gracias por dejar este legado, espero te encuentres en un lugar mejor. Descansa en paz. F en el chat

  • @FernandoSanchezDaza
    @FernandoSanchezDaza 6 років тому +49

    RIP Fido :'v

  • @elfyrulais
    @elfyrulais 6 років тому +47

    6:06 Vine a aprender, no a llorar ;-;

    • @lnicofideo6530
      @lnicofideo6530 6 років тому +5

      Somos 2 :'v
      RIP Fido. Murio por una enfermedad :'v

    • @paulo0651
      @paulo0651 4 роки тому +4

      @@lnicofideo6530 el tambien murio por una enfermedad, maldito cancer.

  • @kevinosorto8605
    @kevinosorto8605 8 років тому +2

    Eres genial, te sigo desde que comenzaste la serie; explicas muy bien!

  • @davidalejandroortega7363
    @davidalejandroortega7363 4 роки тому +7

    una manera de poner este símbolo ~ se presiona Alt+1+2+6 en la tabla numerica

  • @frankabignale9102
    @frankabignale9102 8 років тому +3

    Muchas gracias, tus explicación son excelentes sigue así, me gustan muchos tus vídeos .

  • @eduardoliclacisneros1946
    @eduardoliclacisneros1946 4 роки тому +1

    Me hice drama leyendo en el deitel la función acotada que tiene el destructor. Ya puedo respirar normalmente. Gracias y espero que desde el cielo te lleguen los laiks

  • @gogoat2412
    @gogoat2412 4 роки тому

    2:05 Yo al menos en mi país lo conozco como "rabillo" o "moño" de la ñ. Saludos desde España. Muy buenos vídeos, de verdad. Muchas gracias 😊

    • @oscaralvaro7715
      @oscaralvaro7715 4 роки тому

      Alejandro Taboada murió hace un año :'c

    • @gogoat2412
      @gogoat2412 4 роки тому

      @@oscaralvaro7715 cómo? Ostras, no me jorobes😭😱

    • @oscaralvaro7715
      @oscaralvaro7715 4 роки тому

      @@gogoat2412 googlealo, fue muy triste

  • @itsvan8945
    @itsvan8945 10 місяців тому +1

    vuela alto 😇😇

  • @paolaosoroi4285
    @paolaosoroi4285 7 років тому +23

    ~ el perrito enfermo y murio me cage de risa jajajajaj

    • @darthvader8469
      @darthvader8469 4 роки тому +1

      Jaja se la mamo con esa jaja y con los ejemplos que da jeje

    • @marcelorto440
      @marcelorto440 3 роки тому

      bro como saco ese signo del destructor??

  • @julianluk
    @julianluk 4 роки тому +2

    2:03 el nombre del simbolo de la ñ se llama virgulilla

  • @jose-ye6bl
    @jose-ye6bl Рік тому

    Excelente , ojala tu huberias sido mi profesor de informatica 2 .

  • @torchu2580
    @torchu2580 7 років тому +18

    Entonces has matado a Fido????

  • @DJgonzai
    @DJgonzai 6 років тому +34

    Destructor de perros.

  • @ChristianJosephZANG
    @ChristianJosephZANG 7 років тому +1

    Programación ATS
    En que ocasión el destructor contiene deletes de los atributos construidos?

  • @camilohernandezruiz2776
    @camilohernandezruiz2776 2 роки тому

    una forma de comprobar que el destructor funciona es ejecutando un método del objeto luego de invocar el destructor para ver el mensaje de error que sale

  • @null1449
    @null1449 8 років тому +6

    Basicamente un destructor es para limpiar memoria

  • @SuperPianomen
    @SuperPianomen 7 років тому +3

    Muy bueno!! Eres un crack

    •  7 років тому +1

      Muchas gracias :) Un saludo

    • @abelzurita3202
      @abelzurita3202 2 роки тому +2

      @ gracias por todo amigo

    • @anonimusgamer7248
      @anonimusgamer7248 Рік тому

      ​@@abelzurita3202 :'/

  • @emiliopex
    @emiliopex 4 роки тому

    Crack! Claro y conciso!

  • @kikelan9723
    @kikelan9723 7 років тому +1

    Una consulta me pasaron este código para un árbol mediante clases lo que no me queda claro es porque en el destructor hace esa modificación y ademas que en los atributos hay métodos es eso valido o lo he comprendido mal help?
    #include
    #include
    #include
    #include
    using namespace std;
    template
    class Arbol {
    struct Nodo {
    T e;
    Nodo* izq;
    Nodo* der;
    Nodo(T e = 0, Nodo *izq = nullptr, Nodo *der = nullptr) : e(e), izq(izq), der(der) {}
    };
    int n;
    Nodo* raiz;
    void insertar(T e, Nodo*& nodo) {
    if (nodo == nullptr) {
    nodo = new Nodo(e);
    n++;
    } else if (e e) {
    insertar(e, nodo->izq);
    } else {
    insertar(e, nodo->der);
    }
    }
    void preOrden(Nodo* nodo, function p) {
    if (nodo != nullptr) {
    p(nodo->e);
    preOrden(nodo->izq, p);
    preOrden(nodo->der, p);
    }
    }
    void enOrden(Nodo* nodo, function p) {
    if (nodo != nullptr) {
    enOrden(nodo->izq, p);
    p(nodo->e);
    enOrden(nodo->der, p);
    }
    }
    void postOrden(Nodo* nodo, function p) {
    if (nodo != nullptr) {
    postOrden(nodo->izq, p);
    postOrden(nodo->der, p);
    p(nodo->e);
    }
    }
    public:
    Arbol() : n(0), raiz(nullptr) {}
    ~Arbol() {
    stack pilita;
    pilita.push(raiz);
    while (pilita.size() > 0) {
    Nodo* nodo = pilita.top();
    pilita.pop();
    if (nodo != nullptr) {
    pilita.push(nodo->izq);
    pilita.push(nodo->der);
    delete nodo;
    }
    }
    }
    void insertar(T e) {
    insertar(e, raiz);
    }
    void preOrden(function p) {
    preOrden(raiz, p);
    }
    void enOrden(function p) {
    enOrden(raiz, p);
    }
    void postOrden(function p) {
    postOrden(raiz, p);
    }
    };
    int main() {
    int a[] = { 41, 30, 76, 92 ,28, 73, 90, 5, 65, 73 };
    Arbol* arbol = new Arbol();
    for (int i = 0; i < 10; i++) {
    arbol->insertar(a[i]);
    }
    auto imprimir = [](int e) { cout

  • @rainielmartinez2447
    @rainielmartinez2447 4 роки тому

    Hola!! Me dejaron de tarea hacer este destructor jaja!!

  • @Granpepinillox
    @Granpepinillox 8 років тому

    Hola, ¿sabes como hace google para devolvernos un valor al escribir contraseñas en los registros en puntos negros? GRACIAS

  • @carlostorres3888
    @carlostorres3888 2 роки тому

    como puedo hacer 2 destructor dentro de una misma clase?

  • @lnicofideo6530
    @lnicofideo6530 6 років тому +4

    Por qué cuando pongo perro1.jugar(); después del destructor sigue funcionando?

    • @juuamjskn2420
      @juuamjskn2420 4 роки тому +3

      el perro sigue vivo en tu corazon

    • @zoilavillamar4200
      @zoilavillamar4200 3 роки тому +1

      Por que el destructor se ejecuta en el momento de compilación, no cuando estas escribiendo el código..

  • @dennysfabianfalconlainez4932
    @dennysfabianfalconlainez4932 Рік тому +1

    Alt 1+2+6
    O Alt 126
    En codigo acsii es la linea curveada uwu

  • @martinnieva8484
    @martinnieva8484 8 років тому +6

    129 capitulos dedicados a un solo lenguaje??!!?!?!!? Dios

    • @mauriciofrias5357
      @mauriciofrias5357 7 років тому +1

      deathnot3 Que haga de Java 👍👍

    • @lnicofideo6530
      @lnicofideo6530 6 років тому

      En realidad hay demasiadas cosas de c++ (como la STL) que las explica con metodos de c por lo cual son pocos :v

  • @juanse021
    @juanse021 7 років тому +12

    Ese carácter se llama "virgulilla"

  • @OK_ready
    @OK_ready 6 місяців тому

    6:56

  • @oskarizaguirre1157
    @oskarizaguirre1157 7 років тому +2

    Amigo gracias te queria comentar que lo hice y funciona 100% como quería asegurarme que el objeto había sido destruido después de llamar al destructor mande a llamar el método mostrarDatos y obvio tira un error porque el objeto ya no existe así que esta muy bien, pero hice otra prueba que el cliente sea el que ingrese los datos (desde el teclado), en lugar de ingresarlos en duro y adivina que? después de "destruir mi objeto" si llamo al método mostrarDatos me los muestra normal osea el objeto no se destruyo? a que crees que se deba? y porque el cambio?

    • @idbaronco4194
      @idbaronco4194 5 років тому

      Muy raro, lo hice de varias formas, pidiendo los datos al usuario o inicializandolos en el main() e igual destruye de forma correcta el objeto

  • @joelleon8712
    @joelleon8712 6 років тому

    hola amigo muy buena la forma en que explicas me encantaria que hicieras un tutorial de c#NET core mvc, por fa

  • @benitoregaloncastro3725
    @benitoregaloncastro3725 2 місяці тому

    Esa tilde se llama virgulilla en castellano. Un saludo a todos.

  • @GABRIELURAZAGARCIA
    @GABRIELURAZAGARCIA Рік тому

    JAJAJAJAJAJA el perrito enfermo y se murio

  • @kevinhuanca4113
    @kevinhuanca4113 3 роки тому

    6:09 que frozen

  • @gabrielcubilla837
    @gabrielcubilla837 5 років тому

    minuto 6:11 D: que le paso a Firulais

  • @rarasdfa12312
    @rarasdfa12312 4 роки тому

    maquina

  • @dvddavizcky3254
    @dvddavizcky3254 8 років тому +1

    como puedo crear una interfaz gráfica para c++

  • @MrEd-qc7vr
    @MrEd-qc7vr Рік тому

    Se llama Virgulilla

  • @lucioferrando5994
    @lucioferrando5994 3 роки тому

    El guión curveado se llama virguilla

  • @digimikeh
    @digimikeh 7 років тому

    Hola!.. hay algún caso en especial donde el destructor deba recibir algún cuerpo y ser definido?..

  • @aberu_p
    @aberu_p 3 роки тому

    alejandro.~Amigo( ); // :'V

  • @willfdz
    @willfdz 6 років тому +1

    El dios destructor es ~

  • @bulderhep
    @bulderhep 6 років тому

    No quedo claro para que es necesario "borrar" con el destructor, cual es la finalidad practica? si no "borramos, eliminamos" que sucede de malo, disculpa soy proncipiante.

    • @minecraftpapiernik1930
      @minecraftpapiernik1930 6 років тому +2

      Mateo Linás Chaín comentó: No es que el destructor puedas omitirlo y que no sirva para nada. Es que si estas en un programa tan pequeño como este la memoria utilizada es despreciable. Pero si estas con un videojuego, no te interesa que todos los personajes que vas matando se queden ahi en memoria hasta que mates 500, te maten a ti, y despues se liberen esos 500 personajes que tu mataste. Eso seria inviable, llenaria tu ram innecesariamente y haria el ordenador MUY lento. Es importante que si por ejemplo matamos un personaje, ese personaje hace la animacion de morir y desaparece. En este caso sería importante que dentro del destructor indiquemos que haga su animacion de morir. Por ejemplo: if(vida_personaje

  • @diegoortega2906
    @diegoortega2906 4 роки тому

    como se escribe este simbolo ~?

  • @juuamjskn2420
    @juuamjskn2420 4 роки тому

    RIP fido

  • @enriquemanuel123456
    @enriquemanuel123456 7 років тому +1

    y si tengo una herencia a quien se debe de destruir a la clase padre o a la hija?? o a las 2

    • @hmurciafph
      @hmurciafph 4 роки тому

      No se destruyen las clases, se destruyen los objetos que son los que consumen la memoria al ser instanciados.

  • @ramirosaravia3973
    @ramirosaravia3973 3 роки тому

    programacionATS.~Fido();

  • @comercialmetrologica5872
    @comercialmetrologica5872 5 років тому +1

    fidooo :(

  • @ZRobertZ3
    @ZRobertZ3 4 роки тому

    Porque tenias que matar a Fido? F por Fido :´(

  • @bbrruunnoo6161
    @bbrruunnoo6161 2 роки тому

    destruir perros nunca habia sido tan sencillo

  • @josevicenteazofragomez564
    @josevicenteazofragomez564 5 років тому +1

    ~Perro = Pipo muere T_T

  • @christianjosefranciscobust3296
    @christianjosefranciscobust3296 3 роки тому

    alt + 126 = ~

  • @rineit
    @rineit 5 років тому

    pobre fido :(

  • @LuisAntonioToranzoToribio
    @LuisAntonioToranzoToribio 5 років тому

    En español se llama "virgulilla "

  • @imlitto8222
    @imlitto8222 5 років тому +1

    que racista :/

  • @LordColoso
    @LordColoso 2 роки тому

    Taboada: "Ahora estamos destruyendo el objeto."
    Prro procede a m0r1rc3*.
    Taboada: "Gen... Bueno, no es genial, pero es que para eso funciona. :v"

  • @LuisFernando-gc6vx
    @LuisFernando-gc6vx 6 років тому

    hola no vale tu programa le hise lo mismo y no funciona