Główne komponenty:
Dwa główne elementy obiektu unikalnego_ptr podano poniżej:
A. Przechowywany wskaźnik:
Służy do zarządzania obiektami tworzonymi przez unikalny wskaźnik. Jest tworzony w momencie tworzenia wskaźnika i można go zmienić na różne sposoby.
B. Przechowywany delener:
Bierze argument typu przechowywanego wskaźnika, który służy do usuwania zarządzanego obiektu. Jest również tworzony w momencie tworzenia wskaźnika i można go zmienić na różne sposoby.
Przykład 1: Utwórz obiekt wskaźnika klasy z konstruktorem
Sposobem deklarowania unikalnych obiektów wskaźników klasy i dostępu do metody klasy jest użycie obiektów, jak pokazano w poniższym przykładzie. Klasa z konstruktorem i metodą publiczną została ogłoszona w kodzie. Konstruktor ma trzy argumenty. Pierwszy unikalny wskaźnik został stworzony przez wywołanie konstruktora z trzema wartościami argumentów. Wynik() Metoda jest wywoływana przez obiekt wskaźnika, który oblicza sumę trzech wartości argumentów konstruktora. Następnie drugi unikalny obiekt wskaźnika jest tworzony bez wywoływania konstruktora, a pierwszy wskaźnik jest przenoszony do drugiego wskaźnika. Wynik() Metoda jest nazywana przez drugi obiekt wskaźnika.
// Dołącz niezbędne biblioteki
#włączać
#włączać
Używanie STDNamespace STD;
// Zdefiniuj klasę
Dodatek klasowy
Int Number1, Number2, Number3;
publiczny:
// zadeklaruj konstruktora
Dodanie (int a, int b, int c)
Number1 = a;
numer2 = b;
numer3 = c;
// Deklaruj metodę obliczenia sumy
int wynik ()
Zwraca numer 1 + numer 2 + numer3;
;
int main ()
// zadeklaruj pierwszy wskaźnik
unikalny wskaźnik_ptr (nowy dodatek (45, 55, 30));
Cout<<"The result of sum using the first pointer :"// zadeklaruj drugi wskaźnik
unikalne_ptr wskaźnik2;
// Przesuń pierwszy wskaźnik do drugiego wskaźnika
wskaźnik2 = ruch (wskaźnik1);
Cout<<"The result of sum using the second pointer :"return0;
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego kodu. Suma 45, 55 i 30 to 130, które zostały wydrukowane dla obu wskazówek.
Przykład 2: Utwórz obiekt wskaźnika klasy z konstruktorem i destruktorem
Sposób ogłoszenia unikalnego obiektu wskaźnika klasy z konstruktorem i destruktorem został pokazany w poniższym przykładzie. Klasa zawiera konstruktor z jednym argumentem, metodę publiczną o nazwie display () do wartości zmiennej klasy oraz destruktor, który wydrukuje komunikat niszczenia przed zniszczeniem obiektu klasy klasy. Metoda display () jest wywoływana po utworzeniu unikalnego obiektu wskaźnika w kodzie.
// Dołącz niezbędne biblioteki
#włączać
#włączać
Używanie STDNamespace STD;
// Zdefiniuj klasę
Klasy klientów
Nazwa ciągu;
publiczny:
// zadeklaruj konstruktora
Klient (ciąg n)
Nazwa = n;
Cout<<"The resource is allocated.\n";
// zadeklaruj metodę wydrukowania nazwy klienta
void wyświetlacz ()
Cout<<"The name of the customer is: "<< name <<"\n";
// zadeklaruj destruktora
~ Klient ()
Cout<<"The resource is destroyed.\n";
;
int main ()
// przydziel obiekt zasobów, który jest własnością unikalnego_ptr
unikalne_ptrupointer new Customer („miR Abbas”);
upointer-> display ();
return0;
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego kodu:
Przykład 3: Sprawdź wskaźnik po przeniesieniu własności
Sposób sprawdzenia własności unikalnego wskaźnika pokazano w poniższym przykładzie, tworząc dwa unikalne wskazówki klasy klasy. Klasa z dwiema zmiennymi ciągami i metodą publiczną została zadeklarowana w kodzie. Metoda klasy_details () klasy nazywa się po utworzeniu pierwszego unikalnego obiektu wskaźnika klasy. Następnie utworzono drugi unikalny obiekt wskaźnika, a pierwszy wskaźnik został przeniesiony do drugiego wskaźnika, który niszczy pierwszy wskaźnik. Własność obu wskaźników powinna zostać sprawdzona później.
// Dołącz niezbędne biblioteki
#włączać
#włączać
Używanie STDNamespace STD;
// Zdefiniuj klasę
Książka klasowa
String title = "The C ++ Languaging Janguge";
String autor = "Bjarne Stroustrup";
publiczny:
// Deklaruj metodę drukowania szczegółów książki
voidbook_details ()
Cout<<"Book Name: "<< title <<"\n";
Cout<<"Author Name: "<< author <<"\n";
;
int main ()
// zadeklaruj pierwszy wskaźnik
unikalne_ptr wskaźnik1 (nowa książka ());
Pointer1-> book_details ();
// zadeklaruj drugi wskaźnik
unikalne_ptr wskaźnik2;
// Przesuń pierwszy wskaźnik do drugiego wskaźnika
wskaźnik2 = ruch (wskaźnik1);
// Sprawdź pierwszy wskaźnik
if (static_cast (wskaźnik1)) cout<<"The first poiner is not null\n";
Elsecout<<"The first poiner is null\n";
// Sprawdź drugi wskaźnik
if (static_cast (wskaźnik2))<<"The second poiner is not null\n";
Elsecout<<"The second poiner is null\n";
return0;
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego kodu. Zgodnie z wynikami własność pierwszego wskaźnika została usunięta, a przesłanie „”Pierwszy wskaźnik jest NULL”Wydrukowano dla pierwszego wskaźnika. Istnieje własność drugiego wskaźnika i przesłanie „Pierwszy wskaźnik nie jest zerowy”Wydrukowano dla drugiego wskaźnika:
Wniosek:
Cele zastosowania unikalnego wskaźnika w programowaniu C ++ zostały opisane w tym samouczku za pomocą wielu przykładów. Sposoby utworzenia unikalnego wskaźnika, przeniesienia własności wskaźnika i sprawdzenie obecnej własności wskaźnika zostały tutaj wyjaśnione, aby pomóc czytelnikom prawidłowe poznać unikalny wskaźnik.