Avatar ·

كيفية تمرير unique_ptr بشكل صحيح إلى المُنشئ أو الدالة؟

مرحباً! لقد بدأت مؤخراً في تعلم C++11 وأحاول فهم المؤشرات الذكية، خاصة std::unique_ptr. قرأت أنها تساعد في إدارة الذاكرة تلقائياً ولا تتطلب delete. لكن واجهت مشكلة: لا أفهم كيفية تمرير unique_ptr بشكل صحيح إلى الدوال والمُنشئات.\n\nإليك كلاس بسيط كتبته:\n\n```cpp\n#include \n#include \n\nclass MyClass {\npublic:\n MyClass(std::unique_ptr ptr) : data(std::move(ptr)) {\n std::cout << "Created with value: " << *data << std::endl;\n }\nprivate:\n std::unique_ptr data;\n};\n\nvoid processData(std::unique_ptr ptr) {\n std::cout << "Processing: " << *ptr << std::endl;\n}\n\nint main() {\n auto p = std::make_unique(42);\n // كيف يمكن تمرير p إلى المُنشئ