Korzystanie z konstruktora kopii
W C ++ konstruktor kopii służy do powielania zawartości z jednego obiektu na drugi. Teraz spójrzmy na przykład, aby pokazać, jak użyć konstruktora głębokiego kopii.
Przede wszystkim zintegrowaliśmy plik nagłówka dla funkcji wejściowych i wyjściowych. Następnie użyliśmy standardowej przestrzeni nazw. Teraz zamierzamy ogłosić „pokój”. Zainicjowaliśmy długość i szerokość pokoju i ustawiliśmy ją na osobności. Typ danych długości i szerokości jest tutaj „podwójny”.
Teraz zadeklarowaliśmy „długość” i „szerokość” zmiennej za pomocą sparametryzowanego konstruktora. Tutaj przekazaliśmy te parametry do konstruktora „pokoju” i ma to być publiczne. Oprócz tego wykorzystaliśmy konstruktor kopii. Kopiujemy treść argumentu „OBJ”. Funkcja calculatearea () jest wywoływana w celu znalezienia obszaru pomieszczenia poprzez pomnożenie wartości długości przez wartość wysokości.
W kolejnym etapie zadeklarowaliśmy funkcję Main (). Tutaj skonstruowaliśmy obiekt klasy „pokoju”, a także określiliśmy wartości jej długości i szerokości. Teraz musisz tylko skopiować dane z „Room1” do „Room2”. Następnie wykorzystaliśmy „cout” do wyświetlania obszarów obu pokoi. Ostatecznie return0 służy do zakończenia programu.
Użyj konstruktora płytkiego kopii
Gdy klasa nie oddziałuje dynamicznie z alokacją pamięci, używany jest konstruktor płytkiej kopii. Dwa obiekty w konstruktorze płytkich kopii odnoszą się do podobnego adresu pamięci. Odniesienia do rzeczywistych elementów są replikowane w płytkiej kopii. Standardowy konstruktor kopii jest określony przez kompilator. To trochę po bitnej replice rzeczy. Poniżej do zilustrowania pojęcia konstruktora kopii płytkiej.
Na początku programu wprowadziliśmy dwie wymagane biblioteki i . Oprócz tego wykorzystaliśmy również standardową przestrzeń nazw. Teraz utworzyliśmy klasę o nazwie „komputer”. Skonstruowaliśmy wskaźnik klasy i ustawiliśmy jej typ danych „Znak”.
Publicznie zadeklarowaliśmy funkcję klasy „komputer” i tutaj przekazaliśmy zdefiniowany konstruktor jako parametr do tej funkcji. Utworzyliśmy tutaj dynamiczną alokacja pamięci i ustawiliśmy ją równą zmiennej wskaźnika. Pozwala użytkownikowi na utworzenie pamięci dla atrybutu lub nawet tablicy w programie.
Ponadto zastosowaliśmy funkcję void conatenate (). Aby połączyć dwa ciągi, zastosowaliśmy metodę strcat (). Teraz zadeklarowaliśmy konstruktora kopii klasy „komputer”. Aby pokazać wyjście, zastosowaliśmy funkcję void display () wraz z instrukcją „Cout”. Teraz nadszedł czas, aby wywołać funkcję Main (). Wykorzystaliśmy konstruktor kopii wewnątrz korpusu funkcji main (). Jest nazywany konstruktorem, ponieważ jest wykorzystywany do generowania obiektu.
Tak więc konstruktor kopii, jak sama nazwa wskazuje, generuje nowy obiekt, który jest identyczną repliką oryginalnej kopii. Utworzyliśmy dwa obiekty i określliśmy wartości tych obiektów. Następnie zastosowaliśmy funkcję display () indywidualnie na tych obiektach, aby uzyskać wynik.
W następnym kroku A1 kusi, aby zatem zastosować „A1.funkcja conatenate (). Tutaj ustalamy również „technologię” wartości dla konkatenacji. Ponownie wykorzystaliśmy metodę display (), aby uzyskać wyjście. Teraz kończymy program, używając „powrotu 0”.
Użyj konstruktora głębokiego kopii
Głęboka kopia wymaga unikalnej przestrzeni pamięci dla zduplikowanych danych. W rezultacie oryginał i kopia są odrębne. Modyfikacje zaimplementowane w jednym regionie pamięci nie mają wpływu na replikę. Wykorzystalibyśmy konstruktor kopii zdefiniowanej przez użytkownika podczas konstruowania pamięci dynamicznej z wskaźnikami. Oba podmioty odnoszą się do oddzielnych lokalizacji w pamięci.
Ponadto używamy standardowej przestrzeni nazw. Zrobimy teraz klasę o nazwie „ProgramingLanguage.„Utworzyliśmy wskaźnik klasy i zdefiniowaliśmy jego typ danych na”.„Następnie zdefiniowaliśmy funkcję„ programu programowego ”jako publicznego i zapewniliśmy mu określony konstruktor jako argument.
Tutaj skonstruowaliśmy dynamiczną alokacja pamięci i przydzieliliśmy ją równoważną ze zmienną wskaźnika. Umożliwia nam pozyskanie pamięci dla zestawu danych lub tablicy w programie. Funkcja jest tutaj wywoływana, a konstruktor klasy programowania Language jest podawany jako parametr. Wykorzystaliśmy metodę void conatenate ().
Ponadto wykorzystamy technikę strcat () do łączenia dwóch strun. Teraz utworzyliśmy konstruktor kopii klasy „ProgramingLanguage”. Dane są wyświetlane za pomocą metody void display () i polecenia „cout”. Funkcja main () zostanie teraz wywołana. W treści funkcji main () użyliśmy konstruktora kopii. To powiela się predefiniowany obiekt. Stąd normalnie nie chcielibyśmy modyfikować rzeczywistego obiektu. Tworzymy dwa obiekty i przypisujemy obiekt „A1” Python Wartość.„Obiekt„ A2 ”jest równy obiektowi„ A1 ”w następnej fazie.
Aby uzyskać dane wyjściowe, używamy metody display () na każdym z tych obiektów indywidualnie. Teraz wykorzystaliśmy polecenie „return 0”, aby wyjść z programu.
Wniosek
W tym artykule wyjaśniliśmy działanie konstruktora kopii w języku C ++. Ilekroć jest wykonany obiekt, konstruktor jest specyficzną formą klasy pochodnej, która jest natychmiast zadeklarowana. Konstruktory kopii to konstruktory, które zostaną wykorzystane do powtórzenia elementu określonej klasy, który już istnieje. Zaobserwowaliśmy również, jak używać konstruktora płytkiego kopii i konstruktora głębokiego kopii za pomocą różnych instancji.