Konstruktory i niszczyciele C ++

Konstruktory i niszczyciele C ++
W C ++ Constructor jest silną cechą klasy. Wiemy, że w C ++ prowadziliśmy różne klasy. Na zajęciach używamy go do funkcji. Więc konstruktor jest specjalnym rodzajem funkcji członka.

Destruktor jest również funkcją klasy w c++. Podobnie jak Constructor Destructor ma również pewne specjalne cechy. Teraz omawiamy zarówno konstruktor, jak i destruktor w naszym temacie.

Podstawowe cechy konstruktora:

  1. Konstruktor ma unikalną funkcję: zarówno nazwa klasy, jak i nazwa konstruktora muszą być takie same.
  2. Konstruktor nie ma żadnego typu zwrotnego jako normalnej funkcji. Nie możemy więc użyć żadnego słowa kluczowego w konstruktorze.
  3. Konstruktor zachowuje się jak funkcja, ale różni się od normalnej funkcji.

Teraz piszemy program, jak zrobić konstruktor w klasie.

Przykład programowania 1:

#włączać
za pomocą przestrzeni nazw Std;
Kompleks klasowy

prywatny:
int x, y;
publiczność:
Complex () // Utwórz konstruktor w klasie.

Cout<< “ Example of a Constructor \n ” ;

;
int main ()

Złożony com;
powrót 0;

Wyjście:

Wyjaśnienie:

Tutaj tworzymy klasę o nazwie kompleks. Deklarujemy dwie zmienne, x i y, pod modyfikatorem prywatnym. Następnie tworzymy konstruktor w publicznym modyfikatorze podobnym do nazwy klasy. Tutaj nie piszemy żadnego słowa kluczowego powrotu dla konstruktora.

Konstruktor nazywany jest domyślnie. Gdy obiekt otrzymuje konstruktor pamięci, będzie działać domyślnie.

Klasyfikacja konstruktora:

Istnieją trzy rodzaje konstruktorów dostępnych w C++. Oni są

  1. Domyślny.
  2. Parametryzowane.
  3. Kopiuj.

A. Domyślny konstruktor:

Ilekroć nie tworzymy żadnego konstruktora dla klasy i tworzymy obiekt dla tej klasy, konstruktor jest domyślnie wywoływany przez kompilator. Ten typ konstruktora nazywa się domyślnym konstruktorem. Ma specjalną funkcję. W jego ciele nie ma kodu i nie bierze żadnych parametrów.

Przykład programowania 2:

#włączać
za pomocą przestrzeni nazw Std;
Kompleks klasowy

Prywatny:
int a, b;
publiczność:
;
void main ()

Złożony com;

Wyjście:
Ponieważ ten program nie ma żadnej instrukcji wyjściowej, nie ma żadnego wyjścia.

Wyjaśnienie:

Tutaj tworzymy kompleks klasowy. W klasie złożonej nie tworzymy żadnego konstruktora. Ale wewnątrz main (), gdy tworzymy obiekt o nazwie Com, kompilator tworzy domyślny konstruktor w pliku obiektowym. Nazywa się domyślnym konstruktorem. Ten typ konstruktora nie ma żadnego kodowania w jego ciele.

B. Sparametryzowany konstruktor:

Jeśli chcemy przekazać niektóre argumenty wewnątrz konstruktora, nazywa się to sparametryzowanym konstruktorem.

Przykład programowania 3:

#włączać
za pomocą przestrzeni nazw Std;
Kompleks klasowy

prywatny:
int a, b;
publiczność:
Złożone (int x, int y) // Utwórz sparametryzowany konstruktor.

a = x;
B = y;
Cout<< “ The values of a and b are”
<;
int main ()

Complex Com (3, 4);
powrót 0;

Wyjście:

Wyjaśnienie:

Powyższy kod jest przykładem sparametryzowanego konstruktora. Tutaj mijamy dwie liczby całkowite jako argumenty x i y wewnątrz złożonego konstruktora. Jeśli przekazamy niektóre wartości, takie jak 3 i 4 wewnątrz obiektu COM jako com (3, 4) z głównej funkcji, wartość ta trafia do konstruktora.

C. Kopiuj konstruktor:

Gdy jeden obiekt klasy jest skopiowany do innego obiektu tej samej klasy, nazywa się on konstruktorem kopii. Oznacza to, że oba obiekty mają tę samą wartość tej samej klasy.

Przykład programowania 4:

#włączać
Przykład klasy

int x, y;
publiczność:
Przykład (int a, int b) // Utwórz konstruktor w klasie.

x = a;
y = b;

void wyświetlacz ()

Cout << “ The values are : ”
<< x << “ and” << y ;

;
void main ()

Przykład EX1 (50, 60);
Przykład ex2 = com1;
Ex2.wyświetlacz() ;

Wyjście:

Wyjaśnienie:

Tutaj tworzymy sparametryzowany kompleks nazwy konstruktora. EX1 jest przedmiotem przykładu klasy. Za pośrednictwem obiektu Ex1 przekazujemy dwie wartości, 50 i 60. W Display () wyjście zostanie pokazane na 50 i 60.

Teraz kopiujemy wartość EX1 do innego obiektu, EX2. Wynik będzie taki sam, jeśli wywołamy funkcję display () za pośrednictwem obiektu Ex2.

Burzyciel:

Destruktor to kolejna potężna cecha, taka jak konstruktor klasy. Jego nazwa będzie taka sama jak nazwa klasy, jak wcześniej widzieliśmy w konstruktorze. Ale symbol nazywany Tilde (~) jest oddzielony destruktorem od konstruktora w kodowaniu.

Nie ma również typu powrotu jako konstruktora i nigdy nie może być statyczny.
Główną różnicą między konstruktorem a destruktorem jest to, że destruktor nie bierze żadnych argumentów takich jak konstruktor. Oznacza to, że przeciążenie nie jest możliwe w przypadku destruktura.

Przykład programowania 5:

#włączać
za pomocą przestrzeni nazw Std;
Kompleks klasowy

prywatny:
int a, b;
publiczny:
~ Complex () // Utwórz destruktor w klasie.

Cout<< “ Example of a Destructor\n ” ;

;
Void Fun ()

Złożony des; // tworzenie obiektu klasy

int main ()

zabawa() ;
powrót 0;

Wyjście:

Wyjaśnienie:

Tutaj tworzymy kompleks nazwy destruktorów w klasie złożonej. Teraz musimy wiedzieć, jaki jest powód, dla którego używamy destruktora. Destructor zostaje powołany pośrednio przez kompilator, gdy obiekt zniszczy. Jest to nieporozumienie, że Destructorzy niszczą pamięć obiektu. Faktem jest, że Destructor jest ostatnią metodą, która działa. Po tym obiekt z pewnością zostanie zniszczony, co oznacza w Main () Po uruchomieniu zabawy (), obiekt musi zostać zniszczony.

Wniosek:

Po omówieniu koncepcji konstruktora i destruktura stwierdzimy, że konstruktor i destruktor są ważnymi funkcjami członkowskimi klasy w C++. Zarówno konstruktor, jak i destruktor bardzo skutecznie zwiększają cechy klasy.