ما هي دلالات النقل move Semantics لنبدأ الحديث عن شيء مفيد جدًا ومهم جدًا لمطوري ++C دعنا نتحدث عن نقل دلالات ما هو بالضبط تحريك دلالات؟ نقل الدلالات هو القدرة على نقل المحتويات من كائن إلى كائن آخر من نفس النوع أو الفئة دون أن يتم نسخه من كائن إلى آخر لنفكر في مثال نحن هنا نبني كائنًا يسمى سلسلة الاختبار Test String سلسلة تسمى سلسلة الاختبار وتعيينها إلى سلسلة تسمى سلسلة الاختبار الثانية مما يجعل نسخة من السلسلة في سلسلة اختبار السلسلة، في سلسلة الاختبار الثانية test string 2 وهو بالضبط ما نراه في الإخراج إذا قررنا بنائه لذا دعنا نبنيه نقوم ببنائه وتشغيله ونرى نسخة من سلسلة اختبار ثم سلسلة اختبار أخرى test string ولكن إذا قررنا استخدام move semantics لبناء سلسلة الاختبار الثانية تم إتلاف السلسلة الأصلية في الواقع، إنها ليست كذلك، إنها مبنية بالفعل بهذه الطريقة تأخذ test string 2 ملكية محتويات test string حيث أنه تم نقلهم متغير سلسلة الاختبار فارغ الآن أو بتعبير أدق هو غير صالح على الرغم من أنه في هذه الحالة، في حالة السلسلة لا يزال من الممكن الوصول إليها لذا سأقوم ببعض التغييرات وأشرحها لذا لجعل test string 2 باستخدام ما يُعرف باسم كونستركتور النقل move constructor حيث نقوم بنقل محتويات السلسلة الأصلية إلى السلسلة الجديدة، نحتاج إلى استخدام الدالة تسمى STD move لكننا سنتحدث عنها لاحقًا في هذا الدرس دعنا نبنيها دعنا نقوم بتشغيلها وكما ترى، لدينا مساحة التي تأتي من هنا لكن محتويات سلسلة الاختبار غير متوفرة الآن محتويات سلسلة الاختبار، التي كانت عبارة عن سلسلة اختبار test string تم نقلها ل test string 2 المزيد عن كيفية عمل دلالات النقل دعنا ننتقل إلى القسم التالي