البرمجة

فهم عامل ‘~’ والفئات الخالية البيضاء في لغة البرمجة C++

في لغة البرمجة C++, يُستخدم العامل “” (tilde) كعامل لعملية البت (bitwise NOT) على الأعداد الصحيحة. عندما يتم وضعه بجوار دالة، كما في الكود الذي قدمته، يكون هو عبارة عن دالة الإزالة (destructor) في الفئة. في هذا السياق، يُستخدم “” لتعيين تصرف محدد عندما يتم تدمير كائن من الفئة. في الحالة المعينة، “~Vehicle()” هو دالة الإزالة لفئة Vehicle، والتي تُستدعى تلقائيًا عندما يتم تدمير كائن من هذه الفئة. الدالة “~Vehicle()” يمكنها تنفيذ إجراءات إزالة، مثل تحرير الذاكرة أو تنظيف الموارد.

بالنسبة للفئة الخالية البيضاء (Pure Virtual Method)، يتم استخدامها عندما نريد تحديد واجب يجب على الفئات المشتقة تنفيذه، ولكن لا نريد توفير تنفيذ افتراضي له في الفئة الأم. في المثال الذي قدمته، “virtual method() = 0;” يعني أنه يجب على أي فئة مشتقة من Vehicle تقديم تنفيذ لدالة “method”، وإلا ستُعتبر الفئة الفرعية أيضًا فئة خالية البيضاء. تستخدم هذه الطريقة لتحديد واجبات الفئة الأم دون توفير تنفيذ افتراضي.

لماذا نحتاج إلى هذا؟ يسمح ذلك بتعزيز مفهوم الاستبدال (polymorphism)، حيث يمكن استخدام كائن من الفئة الأم للعمل بشكل جامع مع الفئات المشتقة دون معرفة تفاصيل تنفيذها الداخلية. يسمح بكتابة كود أكثر قابلية للتوسع وإعادة استخدام، ويعزز فهمًا أفضل للتفاعلات بين الفئات.

المزيد من المعلومات

عندما نتحدث عن العامل “” في C++، يجب أن نتناول أيضًا مفهوم العامل “” في سياق العمليات البتية (Bitwise operations). يُستخدم العامل “~” في هذا السياق لأداء عملية الإنقلاب (complement) على مستوى البت. بمعنى آخر، يقوم بتغيير قيمة كل بت من 0 إلى 1، ومن 1 إلى 0.

لنفهم ذلك بشكل أفضل، دعونا نفترض أن لدينا الرقم الصحيح 5، والذي يُمثل في النظام الثنائي كـ 101. إذا قمنا بتطبيق العملية “~5″، ستصبح النتيجة “11111111111111111111111111111010”. يُلاحظ أن هناك عدة أصفار في بداية النتيجة، وهذا يعود إلى أن العدد الأصلي كان يتمثل باستخدام 32 بت (بشكل افتراضي في العديد من الأنظمة).

أما بالنسبة لاستخدام “~” بجوار دالة، كما هو الحال في “~Vehicle()” في الكود الذي قدمته، فإن هذا يشير إلى دالة الإزالة (destructor) للفئة. هذه الدالة تستخدم لتحرير الموارد وتنظيف الحالة عندما يتم تدمير كائن من الفئة.

أما بالنسبة للفئة الخالية البيضاء (Pure Virtual Class)، فهي جزء من مفهوم البرمجة الكائنية المتقدمة. بتحديد وظيفة كـ “virtual method() = 0;”، يُعلن المبرمج أن هذه الدالة يجب أن تُعد مجرد واجب دون توفير تنفيذ افتراضي. يُستخدم هذا في تحقيق تجنب توفير تنفيذ افتراضي في الفئة الأم، وبالتالي فإن أي فئة فرعية يجب أن تُقدم تنفيذًا لهذه الدالة لتصبح فئة كاملة. يُعزز هذا مبدأ التجريد (abstraction) في البرمجة، حيث يُمكن استخدام كائنات الفئة الأم بدون الحاجة لفهم تفاصيل التنفيذ في الفئات الفرعية.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر