כיצד להשתמש בצורה הטובה ביותר במפעיל רזולוציית היקף ב- C ++?

מאמר זה יציג בפניכם את מפעיל רזולוציית היקף ב- C ++ ויעקוב אחריו להפגנה פרוגרמטית להבנה מפורטת.

כפי שהשם מרמז, אופרטור רזולוציית היקף משמש לקבלת השמות הנסתרים עקב היקפים משתנים, כך שתוכלו עדיין להשתמש בהם. במאמר זה נבין כיצד להשתמש במפעיל רזולוציית היקף ב- C ++ ומה מטרותיו השונות מ- .



ב- C ++, אופרטור רזולוציית היקף הוא ::. ניתן להשתמש במפעיל רזולוציית היקף ב- C ++ ל:



עכשיו בואו נבין כל אחת מהיעדים בזה אחר זה בעזרת דוגמאות.

גישה למשתנה גלובלי כשיש משתנה מקומי עם אותו שם

אתה יכול להשתמש במפעיל רזולוציית היקף כדי לגשת למשתנה הגלובלי אם יש לך משתנה מקומי עם אותו שם. בדוגמה שלהלן יש לנו שני משתנים ששניהם מספרים עם היקף גלובאלי ומקומי. לכן, כדי לגשת למשתנה הגלובלי 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 } 

תְפוּקָה

ממשיך הלאה עם מאמר זה על מפעיל רזולוציית היקף ב- C ++



הגדרת פונקציה מחוץ לכיתה

אם אתה מצהיר על פונקציה בכיתה ואז ברצונך להגדיר אותה מחוץ למחלקה, תוכל לעשות זאת באמצעות אופרטור רזולוציית היקף. בדוגמה שלהלן אנו מכריזים על מהירות פונקציה באופני כיתה. בהמשך אנו מגדירים את הפונקציה במחלקה הראשית באמצעות אופרטור רזולוציית היקף.

דוגמא

# כלול שימוש במרחב השמות std class אופניים {public: // רק הצהרת הפונקציה void speed ()} // הגדרת פונקציית Speed ​​מחוץ למחלקת האופניים באמצעות :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

תְפוּקָה

ממשיך הלאה עם מאמר זה על מפעיל רזולוציית היקף ב- C ++

גישה לסטטי של הכיתה משתנים

ניתן לגשת למשתנה הסטטי של הכיתה באמצעות אופרטור שם המחלקה ורזולוציית היקף (כלומר class_name :: static_variable). תוכלו לראות בדוגמה שלהלן, אנו מכריזים על משתנה סטטי בכיתה. אנו מגדירים את המשתנה מחוץ לכיתה באמצעות אופרטור רזולוציית היקף. ואז אנו ניגשים אליו באמצעות מפעיל שם המחלקה ורזולוציית היקף.

דוגמא

#include using namespace std class נסה {static int num1 public: static int num2 // פרמטר מקומי מסתיר את חבר class // ניתן לגשת אליו לחבר Class באמצעות :: void function (int num1) {// num1 static static ניתן לגשת באמצעות :: // למרות המשתנה המקומי 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 } 

תְפוּקָה

ממשיך הלאה עם מאמר זה על מפעיל רזולוציית היקף ב- C ++

הכוונה לשיעור בתוך כיתה אחרת

ניתן ליצור מחלקה מקוננת עם אותם שמות משתנים בשתי המחלקות. אתה יכול לגשת לשני המשתנים באמצעות אופרטור רזולוציית היקף. למשתנה המעמד הפנימי, עליך להשתמש Outer_Class :: Inner_Class :: משתנה.

דוגמא

# כלול שימוש ב- 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}

ממשיך הלאה עם מאמר זה על מפעיל רזולוציית היקף ב- C ++

במקרה של ירושה מרובה

אם יש לך שתי כיתות אב עם שמות משתנים זהים ואתה יורש את שתיהן בכיתת הצאצא, תוכל להשתמש במפעיל רזולוציית היקף עם שם הכיתה כדי לגשת למשתנים הבודדים.

בדוגמה שלהלן, אנו יוצרים שני כיתות הורים Parent1 & Parent2, ולשתיהן משתנה מספר. כאשר אנו יורשים את שניהם בכיתת Child, אנו יכולים לגשת לשני המשתנים באמצעות מספר המחלקה & אופרטור רזולוציית היקף.

דוגמא

# כלול שימוש במרחב השמות 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 { public: פונקציה בטל () {cout<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 } 

תְפוּקָה

ממשיך הלאה עם מאמר זה על מפעיל רזולוציית היקף ב- C ++

מרחב שמות

נניח שיש לנו שני מרחבי שמות ושניהם מכילים מחלקה עם אותו שם. אז כדי להימנע מכל התנגשות נוכל להשתמש בשם מרחב השמות עם מפעיל רזולוציית היקף. בדוגמה שלהלן אנו משתמשים std :: cout .

דוגמא

מנהל מוסמך cloudera עבור apache hadoop
#include int main () {std :: cout<< 'Hello' << std::endl } 

תְפוּקָה

עכשיו אחרי שעברת על התוכניות לעיל היית מבין הכל לגבי מפעיל רזולוציית היקף ב- C ++. אני מקווה שהבלוג הזה אינפורמטיבי וערך מוסף עבורך.

כעת לאחר ביצוע התוכנית לעיל היית מבין את מפעיל רזולוציית היקף ב- C ++. לפיכך הגענו לסוף מאמר זה בנושא 'קוויקסורט בג'אווה'. אם ברצונך ללמוד עוד, עיין ב- Java Training של Edureka, חברת למידה מקוונת אמינה. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה נועד להכשיר אותך לקונספטים מרכזיים של Java וגם עם מסגרות Java שונות כמו Hibernate & Spring.

יש לך שאלה עבורנו? אנא הזכיר זאת במדור התגובות בבלוג זה ונחזור אליך בהקדם האפשרי.