Úvod do konstruktoru a ničitele v C ++
- Constructor and Destructor v C ++ hraje významnou roli v objektově orientovaném programovacím jazyce jako C ++. Protože máme objekty třídy C a jeho objekty v C ++, při vytváření nového objektu lze konstruktér pokaždé použít k inicializaci objektu, zatímco když se objekt chystá zničit destruktor, lze použít k provedení požadovaných následných operací.
- Když vytváříme objekt třídy v C ++, možná budete chtít inicializovat pole třídy s některými výchozími nebo určitými hodnotami. Třída má svá pole a metody. Pole jsou většinou proměnné nebo objekty. Přiřazením výchozích hodnot těmto polím usnadňujeme programování. Konstruktor je jako normální funkce v rámci třídy a kompilátor jej volá automaticky, když vytváříme nový objekt této třídy. Při vytváření objektu ve skutečnosti předáváme požadované hodnoty jako argument k objektu, tyto argumenty jsou předávány konstruktoru třídy. Hodnoty argumentů lze nyní přiřadit odpovídajícím polím, která jsou k dispozici ve třídě. Kromě toho můžeme přiřadit výchozí hodnoty k polím, kde nepředáváme argumenty. Jako takové různé typy a způsoby inicializujeme konstruktor v C ++.
- Konstruktor je jako speciální členská funkce třídy. Kdykoli vytvoříme nový objekt, konstruktor se provede. Syntaxe konstruktoru je velmi jednoduchá, funkce bude mít stejný název jako třída, ve které je definována, a nebude mít žádný návratový typ, ani neplatný. Konstruktory jsou velmi užitečné při přiřazování konkrétních hodnot určitým členům třídy. Konstruktor může být použit k provádění logiky související s třídou v okamžiku vytvoření instance.
Syntaxe konstruktoru
class Box (
public:
int height;
//constructor
Box () (
// member initialization
)
)
Destruktor v C ++ je také speciální členskou funkcí ve třídě. Deštruktor je volán kompilátorem automaticky a je spuštěn, kdykoli předmět dané třídy vyjde z rozsahu nebo je odstraněn pomocí smazaného výrazu na ukazatel tohoto objektu. Kdykoli je objekt zničen kompilátorem, je volán destruktor. V destruktoru můžeme provádět příkazy, které mohou být cokoli, co chceme provést, když objekt zmizí z rozsahu. Následné operace, jako je uzavření připojení, uzavření souborů atd., Jsou některé z příkladů, které můžeme provést v destruktoru.
Syntaxe ničitele
class Box (
public:
int height;
//destructor
~Box () (
// post statements
)
)
Syntaxe destruktoru je velmi podobná konstruktoru. Bude mít stejný název jako třída, ve které je definována, a nebude mít žádný návratový typ. Jen však bude mít znak ~ (vlnovka) před názvem destruktoru. Deštruktor se obvykle používá k přidělování dynamicky přidělené paměti pro třídu a její členy. Destruktory jsou velmi užitečné k provádění operací po operaci, které lze provést po obchodní logice.
Proč potřebujeme konstruktor a ničitel v C ++?
C ++ je objektově orientovaný programovací jazyk. V libovolném objektově orientovaném programovacím jazyce mapujeme původní entity skutečného života s třídou a objekty.
Pojďme pochopit, proč potřebujeme konstruktor a destruktor v C ++ příkladem ze skutečného života. Předpokládejme, že máme entitu Box a vytvořili jsme pro ni třídu a budou mít také objekty, které lze použít v jiných částech. Nyní bude mít pole určité parametry, jako je výška, délka, šířka atd. A kdykoli vytvoříme objekt třídy Box, chceme, aby měl nějakou výchozí hodnotu. Řekněme pro výšku, tohoto cíle lze dosáhnout přiřazením konkrétní výchozí hodnoty výšce v konstruktoru této třídy. Podobně lze pro jiné parametry přiřadit i hodnoty. Po použití objektu Box řekněme, že chceme nějakou konkrétní akci okamžitě nebo zavoláme nějakou funkci. To lze provést pomocí Destructor v C ++. Požadované příkazy budou přidány do destruktoru této třídy. To jsou výhody real-time mít konstruktor a destruktor v C ++.
Jak konstruktéři a ničitelé pracují v C ++?
Jak bylo diskutováno dříve, konstruktor je volán kompilátorem při každém vytvoření objektu. Pokud nedefinujeme konstruktor, kompilátor C ++ pro nás automaticky vygeneruje výchozí konstruktor. Konstruktor se používá k přidělení paměti, pokud je to vyžadováno, a ke konstrukci objektu třídy, zatímco destruktor se používá k provedení požadovaného vyčištění, když je objekt zničen. Deštruktor je volán kompilátorem automaticky, když je objekt zničen. Pokud nedefinujeme vlastní destruktor, kompilátor C ++ vytvoří výchozí destruktor.
Vytvoření konstruktoru a ničitele v C ++? (Příklady)
1. Konstruktor Příklad
Vezměme stejný příklad třídy Box pro deklaraci konstruktéra. Pojďme přiřadit některé výchozí hodnoty výšce a hmotnosti boxu.
Kód
class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
)
Takže kdykoli je objekt této třídy vytvořen, vrátí objekt typu Box s výchozími hodnotami definovanými výše.
2. Příklad ničitele
Kdykoli objekt Box zmizí z rozsahu, vytiskneme nějaký text na konzoli v našem příkladu. Ve skutečnosti může být prováděna jakákoli specifická aktivita.
Kód
class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
//destructor
~Box () (
// post statements
cout << “Box Object is being deleted.” << endl;
)
)
Takže kdykoli se objekt Boxu dostane mimo rozsah, kompilátor vytiskne text, jak je definován výše, na konzole.
Závěr
Konstruktor a ničitel tedy hrají důležitou roli v objektově orientovaném programovacím jazyce. K inicializaci objektu se používá konstruktor a destruktor se používá při ničení objektu. Konstruktor i destruktor jsou velmi užitečné při programování v jazyce C ++.
Doporučené články
Toto je průvodce konstruktorem a ničitelem v C ++. Zde diskutujeme o potřebách Constructor and Destructor v C ++, o způsobu použití, o různých syntaxích a příkladech. Další informace naleznete také v dalších souvisejících článcích.
- Funkce C ++ Array
- Kopírovat konstruktor v C ++
- Úvod do C ++
- Typy konstruktorů v C
- Průvodce ničitelem v C #
- Destruktor v PHP s příklady