Comment passer correctement unique_ptr à un constructeur ou une fonction ?
Bonjour ! J'ai récemment commencé à étudier C++11 et j'essaie de comprendre les pointeurs intelligents, en particulier std::unique_ptr. J'ai lu qu'ils aident à gérer automatiquement la mémoire et ne nécessitent pas de delete. Mais j'ai un problème : je ne comprends pas comment passer correctement unique_ptr aux fonctions et aux constructeurs.
Voici une classe simple que j'ai écrite :
```cpp
#include
#include
class MyClass {
public:
MyClass(std::unique_ptr ptr) : data(std::move(ptr)) {
std::cout << "Created with value: " << *data << std::endl;
}
private:
std::unique_ptr data;
};
void processData(std::unique_ptr ptr) {
std::cout << "Processing: " << *ptr << std::endl;
}
int main() {
auto p = std::make_unique(42);
// Comment passer p dans le constructeur