‫أهلا ومرحبا.
‫في هذه المحاضرة ، سنلقي نظرة على مكافئ C ++ لوظائف المخطط الخالصة ، وهي
‫وظائف المفهوم.
‫سنرى ما هي هذه الكلمة الرئيسية للقرين ، وكيف نستخدمها ، وكيف أنها تقيد ما يمكننا القيام به في
‫الكود الخاص بنا لجعلنا أكثر أمانًا.
‫دعونا نتعمق ونرى كيف يعمل.
‫في الطباعة الزرقاء ، تمكنا من جعل الوظيفة نقية ، وهذا يعني أنه يمكننا التخلص
‫من الحاجة إلى دبابيس التنفيذ.
‫الآن ، في C ++ ، يمكننا القيام بشيء أقوى قليلاً ، وهو جعل الدالة ثابتة.
‫الآن ، ماذا يعني إنشاء دالة const؟
‫هذا يعني أن هذه الوظيفة لا يمكنها تعديل حالة الفصل الخاص بك ، ويتم فرضها بالفعل من خلال قواعد
‫المترجم.
‫لذا اسمحوا لي أن أعطيك مثالا.
‫إذا كنت سأستخدم وظيفة إرجاع النظام الأساسي الخاصة بنا ، فهذه ليست وظيفة يجب أن
‫تعدل أي شيء في الفصل وستكون خطأ حقًا إذا نسينا ذلك لأنه سيكون من الغريب استدعاء
‫هذا واستخدامه في عبارة if بالفعل موقع النظام الأساسي أو إذا تم تحديث مسافة الحركة
‫أو سرعة المنصة.
‫حتى نحافظ على صدقنا في ذلك ، يمكننا تحويله.
‫والطريقة التي نقوم بها هي وضع الكلمة الأساسية للاتصال بعد أقواس الوظيفة.
‫غالبًا ما نترك مساحة هنا أيضًا.
‫الآن ، لكي تتطابق بشكل صحيح مع الوظيفة الموجودة في ملف C ++ ، يتعين علينا بالفعل وضع هذه
‫الكلمة الرئيسية الثابتة هناك أيضًا.
‫الآن ، كما قلت ، هذا يجعل من الخطأ فعل أي شيء من شأنه تعديل الفصل.
‫لذلك إذا كان يجب إرجاع النظام الأساسي ، فقد حاولت تعديل متغير فئة مثل مسافة التحرك.
‫قد أحاول ضبط مسافة التحرك على 200.
‫دعونا نرى ما يحدث عندما ننتقل إلى غير الواقعي ونضغط على زر الترجمة.
‫تمام.
‫يمكنك أن ترى أن هناك خطأ الآن.
‫إنه يفشل في البناء وإذا نظرت إلى الخطأ ، يمكنك أن ترى أن هناك شيئًا يقال
‫هنا حول عدم القدرة على تعديل شيء ما لأنه يتم الوصول إليه من خلال مؤشر ثابت.
‫الآن لا تقلق بشأن هذه اللغة.
‫من الصعب بعض الشيء تفسيره ، لكن النقطة المهمة هي أن كلمة const كانت موجودة وتقول إنها
‫غير قادرة على تعديل شيء ما وهذا أمر بالغ الأهمية.
‫أيضًا ، إذا قمت باستدعاء أي وظائف لم يتم تمييزها على أنها ثابتة ، فهذه أيضًا مشكلة.
‫لذلك ، في حين أنه من الجيد استدعاء الحصول على موقع الممثل ، فإن وظيفة التكلفة لا تغير أي شيء يحصل على
‫الموقع فقط.
‫ليس من المقبول استدعاء موقع ممثل معين لم يتم تمييزه على أنه ثابت وبالتالي فهو غير صالح.
‫يمكن أن يكون تعديل الفصل.
‫لذلك لا يُسمح باستدعاء أي دالة لم يتم تمييزها على أنها const من داخل دالة التكلفة.
‫وهكذا يمكنك أن ترى ظهور مشكلة.
‫لا يمكننا في الواقع استدعاء نقل المسافة من داخلنا في حالة عودة النظام الأساسي لأنه يجب أن يكون إرجاع النظام الأساسي ثابتًا
‫ولكن لم يتم وضع علامة على المسافة المنقولة على هذا النحو.
‫لذا ، فإن الشحن السريع الذي تحصل عليه من المسافة المقطوعة يجعل الحصول على تكلفة نقل المسافة ، لذا في الرأس
‫ورؤية ملف p ، ستضيف هذه الكلمة الأساسية الثابتة للسماح لـ C ++ بمعرفة أنه لا ينبغي تعديل الفصل
‫الدراسي وهل يتم تجميعه الآن أوقف الفيديو واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫لذلك سننتقل إلى ملف الرأس أولاً.
‫وبعد أقواس الإغلاق ، سنضيف مفهوم المسافة ثم نعود
‫إلى ملف C ++.
‫وبعد انتقال المسافة بين الأقواس ، سنضع مفهوم الفضاء.
‫الآن يجب أن يتم تحديث الخطوط المتعرجة الموجودة أسفل مسافة نقل المسافة في وقت قصير.
‫ولكن إذا انتقلنا إلى Unreal وضغطنا على زر الترجمة ، فسيكون هذا هو الحكم النهائي فيما
‫إذا كان المترجم يحب ما فعلناه أم لا.
‫وهذه المرة نجحت عملية التجميع بنجاح ، مما يعني أننا قمنا بتحديث الكود الخاص بنا بشكل
‫صحيح.
‫وهذا منطقي لأنه لا يوجد شيء يتم استدعاؤه من تحريك المسافة وهذا ليس مفهومًا ، إنه
‫لا يحاول تغيير أي شيء.
‫وحيث نستدعي وظيفة في حالة عودة النظام الأساسي ، فإننا نستخدم فقط وظائف const
‫وهذه طريقة لنا لزيادة أمان الكود لأن الوظائف لن تغير الأشياء دون علمنا
‫بها.
‫الآن كتمرين بسيط لنفسك ، قد ترغب في المرور وإلقاء نظرة على جميع الوظائف التي استخدمناها
‫حتى الآن ومعرفة أي منها تم تمييزه على أنه ثابت ، وأي منها ليس كذلك.
‫يمكنك القيام بذلك ببساطة عن طريق تمرير مؤشر الماوس فوق وظيفة مثل الحصول على موقع الممثل ومعرفة ما إذا
‫كانت النافذة المنبثقة مضمنة ، سواء بعد الأقواس بها جهة اتصال أم لا.
‫يمكنك أن ترى مع التمرير على موقع نشط يحوم فوقه يمنحني ثابتًا يحوم فوق الاسم كما يعطيني
‫أن هذا ثابت ومن المنطقي.
‫لا ينبغي أن يغير أي من هذين الشخصين حالة طبقتنا.
‫الآن إذا قمت بالمرور فوق علامة التجزئة ، يمكنك رؤية هذا لم يتم تمييزه على أنه ثابت وهذا
‫أمر منطقي لأن Tick يستخدم عادةً لتحديث كيفية وضع الفصل في العالم أو أي حالة من حالات الفصل الدراسي.
‫ولدينا المتجه الخاص بنا.
‫إذا مررنا بالماوس فوقها ، وأصبحنا آمنين ، بشكل طبيعي ، يمكنك أن ترى أنه تم تمييزها على أنها ثابتة ، وذلك
‫لأن الحصول على الوضع الآمن بشكل طبيعي لا يعدل في الواقع المتجه ، بل يقوم فقط بإرجاع قيمة مع متجه جديد فيه.
‫هذا كل شيء.
‫في هذه المحاضرة تعلمنا عن إضافة const إلى وظائفنا لزيادة أمان الكود الخاص بنا.
‫سأراك في المرحلة التالية.