• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Co to jest wirtualny destruktor i do czego służy?

Cloud VPS
0 głosów
607 wizyt
pytanie zadane 29 marca 2021 w C i C++ przez laiklynn.amaia Obywatel (1,060 p.)
zamknięte 30 marca 2021 przez laiklynn.amaia
Co to jest wirtualny destruktor i do czego służy? W Eclipse for C++ jak się generuje nową klasę to powstaje destruktor, który jest wirtualny. Czemu tak jest?
komentarz zamknięcia: Odpowiedź otrzymano.

1 odpowiedź

+2 głosów
odpowiedź 30 marca 2021 przez j23 Mędrzec (195,240 p.)
wybrane 30 marca 2021 przez laiklynn.amaia
 
Najlepsza

Służy to tego samego, co zwykły destruktor, z tą różnicą, że dzięki "uwirtualnieniu" destruktora masz pewność, że podczas niszczenia obiektu klasy pochodnej z poziomu wskaźnika na klasę bazową zostanie wywołany destruktor klasy pochodnej.

Przykład:

#include <iostream>

struct Base {
    virtual ~Base() { std::cout << "~Base()\n"; }
};

struct Derived : public Base {
    ~Derived() { std::cout << "~Derived()\n"; }
};

int main()
{
    Base* p = new Derived;
    delete p;
}

Zobacz, co się stanie, gdy usuniesz virtual.

Podobne pytania

0 głosów
1 odpowiedź 244 wizyt
0 głosów
2 odpowiedzi 1,187 wizyt
pytanie zadane 8 grudnia 2018 w C i C++ przez dawid2002 Mądrala (5,190 p.)
0 głosów
2 odpowiedzi 2,728 wizyt
pytanie zadane 11 marca 2018 w C i C++ przez Utau Użytkownik (900 p.)

93,463 zapytań

142,459 odpowiedzi

322,729 komentarzy

62,844 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...