Konstruktor a ničitel v C ++ - Potřeby, použití se syntaxí a příklady

Obsah:

Anonim

Ú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.

  1. Funkce C ++ Array
  2. Kopírovat konstruktor v C ++
  3. Úvod do C ++
  4. Typy konstruktorů v C
  5. Průvodce ničitelem v C #
  6. Destruktor v PHP s příklady