Wprowadzenie do Constructor i Destructor w C ++
- Constructor i Destructor w C ++ odgrywa znaczącą rolę w obiektowym języku programowania, takim jak C ++. Ponieważ mamy klasę i jej obiekty w C ++ podczas tworzenia nowego obiektu, za każdym razem można użyć konstruktora do zainicjowania obiektu, natomiast gdy obiekt ma zamiar zniszczyć destruktor, można wykonać wymagane operacje po.
- Kiedy tworzymy obiekt klasy w C ++, możemy chcieć zainicjować pola klasy pewnymi wartościami domyślnymi lub pewnymi. Klasa ma swoje pola i metody. Pola to głównie zmienne lub obiekty. Przypisując wartości domyślne do tych pól, ułatwiamy programowanie. Konstruktor jest jak normalna funkcja w klasie, a kompilator wywołuje ją automatycznie, gdy tworzymy nowy obiekt tej klasy. Podczas tworzenia obiektu przekazujemy wymagane wartości jako argument do obiektu, argumenty te są przekazywane do konstruktora klasy. Wartości argumentów można teraz przypisać do odpowiednich pól, które są dostępne w klasie. Ponadto możemy przypisać wartości domyślne do pól, w których nie przekazujemy argumentów. Istnieją różne typy i sposoby inicjowania konstruktora w C ++.
- Konstruktor jest jak specjalna funkcja członka klasy. Za każdym razem, gdy tworzymy nowy obiekt, konstruktor jest wykonywany. Składnia konstruktora jest bardzo prosta, funkcja będzie miała taką samą nazwę jak nazwa klasy, w której jest zdefiniowana i nie będzie miała żadnego typu zwracanego, nawet nieważnego. Konstruktory są bardzo przydatne w przypisywaniu określonych wartości niektórym członkom klasy. Konstruktor może być używany do wykonywania logiki związanej z klasą w momencie tworzenia instancji.
Składnia konstruktora
class Box (
public:
int height;
//constructor
Box () (
// member initialization
)
)
Destruktor w C ++ jest również specjalną funkcją składową w klasie. Destruktor jest wywoływany automatycznie przez kompilator i uruchamiany za każdym razem, gdy obiekt tej konkretnej klasy wychodzi poza zakres lub jest usuwany przy użyciu wyrażenia delete do wskaźnika tego obiektu. Ilekroć obiekt jest niszczony przez kompilator, wywoływany jest destruktor. W destruktorze możemy wykonywać instrukcje, które mogą być wszystkim, co chcemy wykonać, gdy obiekt wykracza poza zakres. Operacje po, takie jak zamykanie połączeń, zamykanie plików itp. To tylko niektóre przykłady, które możemy wykonać w destruktorze.
Składnia Destructor
class Box (
public:
int height;
//destructor
~Box () (
// post statements
)
)
Składnia destruktora jest bardzo podobna do konstruktora. Będzie miał taką samą nazwę jak klasa, w której jest zdefiniowany i nie będzie miał typu zwracanego. Jednak po prostu będzie miał znak ~ (tylda) przed nazwą destruktora. Zwykle destruktor służy do zwolnienia dynamicznie przydzielonej pamięci dla klasy i jej członków. Destruktory są bardzo przydatne do wykonywania operacji po, które można wykonać po logice biznesowej.
Dlaczego potrzebujemy Konstruktora i Niszczyciela w C ++?
C ++ jest zorientowanym obiektowo językiem programowania. W dowolnym obiektowym języku programowania mapujemy oryginalne rzeczywiste byty za pomocą klasy i obiektów.
Rozumiem, dlaczego potrzebujemy konstruktora i destruktora w C ++ na przykładzie z życia wziętego. Załóżmy, że mamy Box Box i stworzyliśmy dla niego klasę, a będzie on zawierał obiekty, które mogą być również używane w innych częściach. Teraz pole będzie miało określone parametry, takie jak wysokość, długość, szerokość itp., A gdy tworzymy obiekt klasy Box, chcemy, aby przyjmował on pewną wartość domyślną. Powiedzmy, że dla wysokości cel ten można osiągnąć, przypisując określoną wartość domyślną do wysokości w konstruktorze tej klasy. Podobnie w przypadku innych parametrów można również przypisać wartości. Po użyciu obiektu Box powiedzmy, że chcemy od razu określonej akcji lub wywołać jakąś funkcję. Można to zrobić za pomocą Destructor w C ++. Wymagane instrukcje zostaną dodane do destruktora tej klasy. Są to korzyści w czasie rzeczywistym z posiadania konstruktora i destruktora w C ++.
Jak działają Konstruktory i Niszczyciele w C ++?
Jak wspomniano wcześniej, konstruktor jest wywoływany przez kompilator za każdym razem, gdy tworzony jest obiekt. Jeśli nie zdefiniujemy konstruktora, kompilator C ++ automatycznie wygeneruje dla nas domyślny konstruktor. Konstruktor służy do alokacji pamięci w razie potrzeby i konstruowania obiektu klasy, natomiast destruktor służy do wykonywania wymaganego czyszczenia po zniszczeniu obiektu. Destruktor jest wywoływany automatycznie przez kompilator, gdy obiekt zostanie zniszczony. Jeśli nie zdefiniujemy własnego destruktora, kompilator C ++ tworzy domyślny destruktor.
Tworzenie Konstruktora i Niszczyciela w C ++? (Przykłady)
1. Przykład konstruktora
Weźmy ten sam przykład klasy Box, aby zadeklarować konstruktor. Przypiszmy niektóre wartości domyślne do wysokości i wagi pudełka.
Kod
class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
)
Tak więc, za każdym razem, gdy tworzony jest obiekt tej klasy, zwraca obiekt typu Box z wartościami domyślnymi zdefiniowanymi powyżej.
2. Przykład niszczyciela
Ilekroć obiekt Box wyjdzie poza zakres, w naszym przykładzie wydrukujemy tekst na konsoli. W rzeczywistości w kodowaniu można wykonać dowolne określone działanie.
Kod
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 więc, ilekroć obiekt Box wychodzi poza zakres, kompilator wydrukuje tekst zdefiniowany powyżej na konsoli.
Wniosek
Zatem Constructor i Destructor odgrywają ważną rolę w obiektowym języku programowania. Do zainicjowania obiektu używany jest konstruktor, a podczas niszczenia obiektu używany jest destruktor. Zarówno konstruktor, jak i destruktor są bardzo przydatne podczas programowania w języku C ++.
Polecane artykuły
To jest przewodnik po Constructor i Destructor w C ++. Tutaj omawiamy potrzeby Constructor i Destructor w C ++, jak używać, inną składnię i przykłady. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej-
- Funkcje tablicy C ++
- Kopiuj konstruktora w C ++
- Wprowadzenie do C ++
- Rodzaje konstruktorów w C.
- Przewodnik po Destructor w C #
- Destructor w PHP z przykładami