Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Méthodes d'un Pointeur Unique | Pointeurs Uniques
Pointeurs Intelligents C++

bookMéthodes d'un Pointeur Unique

Étant donné que std::unique_ptr est un modèle de classe, il fournit diverses méthodes pour se gérer en toute sécurité.

main.cpp

main.cpp

copy
12345678910111213141516171819202122232425262728293031323334353637383940414243
#include <iostream> #include <memory> struct Sample { Sample(int v) : value(v) {} int value; void GetValue() { std::cout << "Value: " << value << std::endl; } }; int main() { // Creating a `unique_ptr` std::unique_ptr<Sample> p_first = std::make_unique<Sample>(10); // Using `get()` to retrieve the raw pointer Sample* p_raw = p_first.get(); std::cout << "Raw pointer value: " << p_raw->value << std::endl; // Using `release()` to transfer ownership Sample* p_released = p_first.release(); if (!p_first) std::cout << "p_first is now empty after release.\n"; // Manually delete the released pointer to avoid memory leak delete p_released; // Resetting the `unique_ptr` p_first.reset(new Sample(20)); p_first->GetValue(); // Using `swap()` with another `unique_ptr` std::unique_ptr<Sample> p_second = std::make_unique<Sample>(30); p_first.swap(p_second); p_first->GetValue(); // Now `p_first` owns `p_second` object // Dereferencing the pointer std::cout << "Dereferencing p_first: " << (*p_first).value << std::endl; // Accessing members using `->` operator p_first->GetValue(); }
question mark

Que fait la fonction reset() lorsqu'elle est appelée sans paramètre ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 5.56

bookMéthodes d'un Pointeur Unique

Glissez pour afficher le menu

Étant donné que std::unique_ptr est un modèle de classe, il fournit diverses méthodes pour se gérer en toute sécurité.

main.cpp

main.cpp

copy
12345678910111213141516171819202122232425262728293031323334353637383940414243
#include <iostream> #include <memory> struct Sample { Sample(int v) : value(v) {} int value; void GetValue() { std::cout << "Value: " << value << std::endl; } }; int main() { // Creating a `unique_ptr` std::unique_ptr<Sample> p_first = std::make_unique<Sample>(10); // Using `get()` to retrieve the raw pointer Sample* p_raw = p_first.get(); std::cout << "Raw pointer value: " << p_raw->value << std::endl; // Using `release()` to transfer ownership Sample* p_released = p_first.release(); if (!p_first) std::cout << "p_first is now empty after release.\n"; // Manually delete the released pointer to avoid memory leak delete p_released; // Resetting the `unique_ptr` p_first.reset(new Sample(20)); p_first->GetValue(); // Using `swap()` with another `unique_ptr` std::unique_ptr<Sample> p_second = std::make_unique<Sample>(30); p_first.swap(p_second); p_first->GetValue(); // Now `p_first` owns `p_second` object // Dereferencing the pointer std::cout << "Dereferencing p_first: " << (*p_first).value << std::endl; // Accessing members using `->` operator p_first->GetValue(); }
question mark

Que fait la fonction reset() lorsqu'elle est appelée sans paramètre ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5
some-alt