كيفية تمرير unique_ptr بشكل صحيح إلى المُنشئ أو الدالة؟
مرحباً! بدأت مؤخراً في تعلم C++11 وأحاول فهم المؤشرات الذكية، خاصة std::unique_ptr. قرأت أنها تساعد في إدارة الذاكرة تلقائياً ولا تتطلب delete. لكن واجهت مشكلة: لا أفهم كيفية تمرير unique_ptr بشكل صحيح إلى الدوال والمُنشئات.
إليك كلاس بسيط كتبته:
```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);
// كيف يمكن تمرير p إلى المُنشئ