Gibt ON_CALL einen Unique Pointer zurück?

Antwort

In C++, `std::unique_ptr` ist ein intelligenter Zeiger, der den Besitz eines dynamisch zugewiesenen Objekts verwaltet und sicherstellt, dass der Speicher automatisch freigegeben wird, wenn der Zeiger aus dem Gültigkeitsbereich fällt. Wenn du eine Funktion hast, die `std::unique_ptr` zurückgibt, kannst du dies mit dem `return`-Statement tun. Hier ist ein einfaches Beispiel, wie du eine Funktion definieren kannst, die einen `std::unique_ptr` zurückgibt: ```cpp #include <iostream> #include <memory> class MyClass { public: MyClass() { std::cout << "MyClass constructor\n"; } ~MyClass() { std::cout << "MyClass destructor\n"; } }; std::unique_ptr<MyClass> createMyClass() { return std::make_unique<MyClass>(); } int main() { std::unique_ptr<MyClass> ptr = createMyClass(); // ptr wird automatisch freigegeben, wenn es aus dem Gültigkeitsbereich fällt return 0; } ``` In diesem Beispiel erstellt die Funktion `createMyClass` ein neues Objekt von `MyClass` und gibt einen `std::unique_ptr` zurück, der auf dieses Objekt zeigt. Der Speicher wird automatisch freigegeben, wenn der `unique_ptr` aus dem Gültigkeitsbereich fällt.

Frage stellen und sofort Antwort erhalten