لمعرفة ما هي دلالات التحرك؟


مرحبًا، في الواقع أحاول أن أفهم دلالات الحركة، والشيء هو أنني لا أفهم النظرية عمليًا. شك واحد فقط هو كيف تتحرك دلالات الحركة bcz في مُنشئ الحركة باستخدام وظيفة النقل، وتقول النظرية أن نقل الملكية إلى مورد آخر يعني أن مُنشئ النسخ سوف يستدعي بشكل صحيح. لا أعرف كيف يعمل منشئ النقل على أي حال يحتاج إلى النسخ بشكل صحيح. لذا، ساعدني في كيفية عمل دلالات الحركة ومعلومات عنوان الكائن بعد أن يصف منشئ الحركة بشكل متعمق.

ما حاولت:

حاولت أن أفهم حول الجوز دلالات هذه الخطوة وجود بعض الشكوك.

الحل 1

من أجل فهم دلالات الحركة، يجب عليك أولاً وقبل كل شيء أن تفهم ما هو الكائن المؤقت. أي أن أي كائن تم إنشاؤه بسرعة ثم يتم التخلص منه على الفور:

سي ++
class A{/*assume it has functionality*/};

A a; // Solid object
A a1 = A(/* constructor parameter(s)*/); // Where as a1 is solid, the RValue assignment is a temporary objest which is when discarded triggers destructor semanticts

لذا فإن دلالات النقل تقول نقل A() إلى a1، لا يوجد نسخ مثل وجود كائنين يشغلان الذاكرة بشكل مؤقت.

يمكن أن يعمل ذلك حتى بدون دلالات النقل، نظرًا لأنه تم تنفيذ مُنشئ النسخ المناسب والمُعيَّنات. لكن دلالات الحركة تزيل النسخ الزائدة عن الحاجة، على سبيل المثال، إذا كان الكائن ضخم الحجم.

コメント

タイトルとURLをコピーしました