ما هي أفضل طريقة لاستخدام مشغل دقة النطاق في C ++؟



ستقدم لك هذه المقالة نطاق عامل الدقة في C ++ ومتابعته العرض التوضيحي البرنامجي لفهم مفصل.

كما يوحي الاسم ، يتم استخدام عامل دقة النطاق للحصول على الأسماء المخفية بسبب النطاقات المتغيرة بحيث لا يزال بإمكانك استخدامها. في هذه المقالة سوف نفهم كيفية استخدام مشغل دقة النطاق في C ++ وما هي أغراضه المختلفة عن ملف .

في C ++ ، عامل تحليل النطاق هو ::. يمكن استخدام مشغل دقة النطاق في C ++ من أجل:





دعنا الآن نفهم كل هدف واحدًا تلو الآخر بمساعدة الأمثلة.

الوصول إلى متغير عام عندما يكون هناك متغير محلي مع نفس الاسم

يمكنك استخدام عامل تحليل النطاق للوصول إلى المتغير العام إذا كان لديك متغير محلي بنفس الاسم. في المثال أدناه لدينا متغيرين كلاهما name num مع النطاق العالمي والمحلي. لذلك ، للوصول إلى متغير num العالمي في الفئة الرئيسية ، يلزمك استخدام عامل دقة النطاق (أي :: num).



مثال

# تضمين باستخدام مساحة الاسم std int num = 30 // تهيئة متغير عالمي num int main () {int num = 10 // تهيئة المتغير المحلي num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

انتاج |

الانتقال إلى هذه المقالة حول Scope Resolution Operator في C ++



كيفية تعيين java classpath في سطر أوامر linux

تحديد وظيفة خارج الفصل

إذا كنت تعلن عن وظيفة في فئة ثم تريد لاحقًا تعريفها خارج الفصل ، يمكنك القيام بذلك باستخدام عامل دقة النطاق. في المثال أدناه ، نعلن عن وظيفة Speed ​​في Class Bike. في وقت لاحق نقوم بتعريف الوظيفة في الفئة الرئيسية باستخدام مشغل دقة النطاق.

مثال

#include using namespace std class Bike {public: // Just the Function Statement void Speed ​​()} // تحديد وظيفة السرعة خارج فئة الدراجة باستخدام :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

انتاج |

الانتقال إلى هذه المقالة حول Scope Resolution Operator في C ++

الوصول إلى فصل دراسي ثابت المتغيرات

يمكنك الوصول إلى المتغير الثابت للفئة باستخدام اسم الفئة ومشغل دقة النطاق (أي class_name :: static_variable). يمكنك أن ترى في المثال أدناه ، نحن نعلن عن متغير ثابت في الفصل. نحن نحدد المتغير خارج الفصل باستخدام عامل دقة النطاق. ثم نقوم بالوصول إليه باستخدام اسم الفئة ومشغل تحليل النطاق.

مثال

#include using namespace std class جرب {static int num1 public: static int num2 // Local parameter hides class member // يمكن الوصول إلى عضو الفئة باستخدام :: void function (int num1) {// num1 static variable يمكن الوصول إليها باستخدام :: // بالرغم من المتغير المحلي num1 cout<< 'Static num1: ' << Try::num1 cout << 'nLocal num1: ' << num1 } } // Defining a static members explicitly using :: int Try::num1 = 10 int Try::num2 = 15 int main() { Try o int num1 = 20 o.function(num1) cout << 'nTry::num2 = ' << Try::num2 return 0 } 

انتاج |

الانتقال إلى هذه المقالة حول Scope Resolution Operator في C ++

يشير إلى فصل داخل فصل آخر

يمكنك إنشاء فئة متداخلة بنفس أسماء المتغيرات في كلا الفئتين. يمكنك الوصول إلى كلا المتغيرين باستخدام عامل دقة النطاق. لمتغير الطبقة الداخلية ، تحتاج إلى استخدام Outer_Class :: Inner_Class :: متغير.

مثال

#include using namespace std class Outside_class {public: int num class Inside_class {public: int num static int x}} int Outside_class :: Inside_class :: x = 5 int main () {Outside_class A Outside_class :: Inside_class B}

الانتقال إلى هذه المقالة حول Scope Resolution Operator في C ++

في حالة تعدد الميراث

إذا كان لديك فئتان أصليتان لهما نفس أسماء المتغيرات وكنت ترث كلاهما في الفئة الفرعية ، فيمكنك استخدام عامل دقة النطاق مع اسم الفئة للوصول إلى المتغيرات الفردية.

في المثال أدناه ، نقوم بإنشاء صنفين أصليين Parent1 و Parent2 ، وكلاهما لهما عدد متغير. عندما نرث كلاهما في فئة الطفل ، يمكننا الوصول إلى كل من المتغيرات الرقمية باستخدام اسم الفئة ومشغل دقة النطاق.

مثال

#include using namespace std class Parent1 {protected: int num public: Parent1 () {num = 100}} class Parent2 {protected: int num public: Parent2 () {num = 200}} class Child: public Parent1، public Parent2 { عام: دالة باطلة () {cout<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 } 

انتاج |

الانتقال إلى هذه المقالة حول Scope Resolution Operator في C ++

مساحة الاسم

لنفترض أن لدينا مساحتي أسماء وكلاهما يحتوي على فئة بنفس الاسم. لذلك لتجنب أي تعارض ، يمكننا استخدام اسم مساحة الاسم مع عامل تحليل النطاق. في المثال أدناه نستخدمه الأمراض المنقولة جنسيا :: cout .

مثال

#include int main () {std :: cout<< 'Hello' << std::endl } 

انتاج |

الآن بعد الاطلاع على البرامج المذكورة أعلاه ، كنت قد فهمت كل شيء عن مشغل دقة النطاق في C ++. آمل أن تكون هذه المدونة مفيدة وذات قيمة مضافة لك.

الآن بعد تنفيذ البرنامج أعلاه ، كنت قد فهمت عامل دقة النطاق في C ++. وهكذا وصلنا إلى نهاية هذه المقالة حول 'Quicksort in Java'. إذا كنت ترغب في معرفة المزيد ، تحقق من Java Training بواسطة Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت. تم تصميم دورة تدريب وإصدار شهادات Java J2EE و SOA من Edureka لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك في أقرب وقت ممكن.