Rozdíl mezi konstruktorem a ničitelem

Třída je v samém jádru objektově orientovaného programování (OOP). Je to jako plán pro vytváření objektů, které poskytují počáteční hodnoty pro členské proměnné a členské funkce. Je to základní stavební blok OOP, který definuje povahu budoucího objektu. Nejdůležitější věc na třídě je, že definuje nový datový typ a jakmile je definován, může být použit k vytvoření objektů tohoto typu. Bylo by postačující říci, že třída je šablona objektu a objekt je ve skutečnosti instancí třídy. Používá se k vytváření a správě nových objektů a podpoře dědičnosti, což je jeden z hlavních konceptů objektově orientovaných programovacích jazyků, jako je Java. Stručně řečeno, třída organizuje informace o datovém typu tak, aby znovu použil prvky při vytváření více instancí tohoto datového typu. Data nebo proměnné definované v rámci třídy se nazývají proměnné instance.

Co je konstruktor?

Konstruktor je speciální členská funkce třídy, která se nazývá při vytvoření instance objektu. Občas může být obtížné inicializovat všechny proměnné ve třídě při každém vytvoření instance. Protože požadavek na inicializaci je běžný v objektově orientovaném programování, umožňuje objektům inicializovat se automaticky, když jsou vytvořeny. Tento proces automatické inicializace se provádí pomocí konstruktoru. Důvod, proč se tomu říká speciální, je ten, že metoda instance má obvykle stejný název jako třída. Inicializuje objekt ihned po vytvoření a lze jej použít k nastavení hodnot členů objektu. Konstruktor je syntakticky podobný metodě v objektově orientovaném programování a metoda je procedura spojená s třídou a obsažená v jakémkoli objektu této třídy. Stručně řečeno, konstruktor se nazývá pokaždé, když je vytvořen objekt třídy. Nejdůležitější věc na konstruktérech je, že nemají žádný návratový typ, dokonce ani neplatí.

Co je ničitel?

Destruktor je úplně jiný koncept; je to speciální metoda, která se nazývá, když je instance třídy vymazána z paměti. Destruktor je volán automaticky, když objekt již není potřeba nebo se chystá zmizet nebo je explicitně uvolněn. Hlavním účelem destruktoru je zbavit se zdrojů, které objekt používal během svého životního cyklu. Dává objektu poslední šanci uvolnit jakoukoli přidělenou paměť, takže bude na haldě dostatek místa pro uložení nových objektů pro efektivní spuštění programů. Destruktory se často používají ve spojení s konstruktory, kromě toho, že se používají ke zničení objektů, které byly vytvořeny pomocí konstruktorů. Cílem je deinicializovat objekty, když jsou odstraněny, aby se uvolnila paměť pro nové objekty. Stejně jako konstruktory jsou destruktory definovány jako podprogramy v definici třídy a mají stejný název jako název třídy, kromě destruktoru je předpona ~ (vlnovka) operátor. Destruktory se v C ++ nazývají explicitně, v Javě však neexistují žádné destruktory.

Rozdíl mezi konstruktorem a ničitelem

Účel konstruktoru a ničitele

Konstruktory i destruktory jsou speciální členské funkce každé třídy, ale s odlišnými koncepty. Konstruktor se používá k inicializaci instance třídy, což znamená, že je vyvolán pokaždé, když je třída instanována, zatímco destruktor je opakem konstruktoru, který se nazývá v obráceném pořadí konstruktorů..

Přidělení paměti

Konstruktor se nazývá pokaždé, když se vytvoří nová instance třídy. Je to v podstatě členská funkce třídy, která inicializuje objekt ihned po vytvoření a přiřadí mu paměť. Deštruktor se naproti tomu nazývá, když je instance třídy vymazána z paměti, což zase deinicializuje objekty, které byly vytvořeny pomocí konstruktorů, aby se uvolnila paměť pro nové objekty..

název

Konstruktory i destruktory jsou speciální členské funkce třídy se stejným názvem jako název třídy, s výjimkou destruktoru s předponou operátoru ~ (vlnovka). Konstruktor není nic jiného než metoda, která nemá žádný návratový typ, dokonce ani neplatná, zatímco destruktory jsou přesně opakem konstruktorů.

Přetížení

Konstruktory i destruktory se nazývají automaticky po vytvoření a odstranění. Na rozdíl od konstruktorů však nelze destruktory přetížit. Přetížení je objektově orientovaný programovací koncept, který vám umožňuje definovat dvě nebo více funkcí se stejným názvem, takže je můžete volat s různými seznamy argumentů.

Argumenty

V objektově orientovaném programování konstruktéři často přijímají argumenty, které používají k nastavení požadovaných členských proměnných, zatímco destruktory nepřijímají žádné argumenty.

Práce konstruktora a ničitele

Konstruktory umožňují objektu inicializovat část jeho hodnoty před tím, než je použit, zatímco destruktory umožňují objektu provést část kódu v době, kdy je zničen..

 Destruktor Constructor Verses: Srovnávací tabulka

Shrnutí Constructor Vs. Destruktor

Konstruktory i destruktory jsou speciální členské funkce třídy se stejným názvem jako název třídy, kromě destruktorů předchází operátor ~ vlnovky. Konstruktor není nic jiného než metoda kromě toho, že se volá, když je vytvořena instance objektu, zatímco destruktor je přesně opakem konstruktorů, které se nazývají, když je instance objektu vymazána z paměti. Účelem destruktorů je deinicializovat objekty, které byly vytvořeny pomocí konstruktorů, aby se uvolnil paměťový prostor pro nové objekty.