วิธีการใช้ Scope Resolution Operator ใน C ++ ให้เกิดประโยชน์สูงสุด



บทความนี้จะแนะนำคุณเกี่ยวกับตัวดำเนินการแก้ไขขอบเขตใน C ++ และติดตามการสาธิตแบบเป็นโปรแกรมเพื่อความเข้าใจโดยละเอียด

ตามชื่อที่แนะนำตัวดำเนินการความละเอียดขอบเขตถูกใช้เพื่อรับชื่อที่ซ่อนอยู่เนื่องจากขอบเขตตัวแปรเพื่อให้คุณยังคงใช้งานได้ ในบทความนี้เราจะเข้าใจวิธีใช้ตัวดำเนินการแก้ไขขอบเขตใน C ++ และอะไรคือจุดประสงค์ที่แตกต่างจากไฟล์ .

ใน C ++ ตัวดำเนินการแก้ไขขอบเขตคือ :: สามารถใช้ตัวดำเนินการความละเอียดขอบเขตใน C ++ สำหรับ:





ตอนนี้เรามาทำความเข้าใจจุดประสงค์ทีละข้อโดยใช้ตัวอย่าง

การเข้าถึงตัวแปรส่วนกลางเมื่อมีตัวแปรภายในที่มี ชื่อเดียวกัน

คุณสามารถใช้ตัวดำเนินการความละเอียดขอบเขตเพื่อเข้าถึงตัวแปรส่วนกลางหากคุณมีตัวแปรโลคัลที่มีชื่อเดียวกัน ในตัวอย่างด้านล่างเรามีสองตัวแปรทั้งชื่อ num ที่มีขอบเขตส่วนกลางและในพื้นที่ ดังนั้นในการเข้าถึงตัวแปร global 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 ++



การกำหนดฟังก์ชันนอกคลาส

หากคุณกำลังประกาศฟังก์ชันในคลาสแล้วต้องการกำหนดฟังก์ชันนั้นนอกคลาสในภายหลังคุณสามารถทำได้โดยใช้ตัวดำเนินการแก้ไขขอบเขต ในตัวอย่างด้านล่างเรากำลังประกาศฟังก์ชัน Speed ​​ใน Class Bike ต่อมาเราจะกำหนดฟังก์ชันในคลาสหลักโดยใช้ตัวดำเนินการแก้ไขขอบเขต

ตัวอย่าง

#include using namespace std class Bike {public: // Just the Function Declaration void Speed ​​()} // การกำหนดฟังก์ชัน Speed ​​นอกคลาส Bike โดยใช้ :: 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 โดยใช้คลาสเนมสเปซ std ลอง {static int num1 public: static int num2 // พารามิเตอร์ภายในซ่อนสมาชิกคลาส // สมาชิกคลาสสามารถเข้าถึงได้โดยใช้ฟังก์ชัน :: void (int num1) {// ตัวแปรคง num1 สามารถเข้าถึงได้โดยใช้ :: // แรงบันดาลใจของตัวแปรท้องถิ่น 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 ใช้เนมสเปซคลาส std Outside_class {public: int num คลาส 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 สองคลาสและทั้งสองคลาสมีตัวแปร num เมื่อเราสืบทอดทั้งสองอย่างในคลาส Child เราสามารถเข้าถึงตัวแปร num ทั้งสองโดยใช้ชื่อคลาสและตัวดำเนินการแก้ไขขอบเขต

ตัวอย่าง

#include โดยใช้คลาสเนมสเปซ std Parent1 {protected: int num public: Parent1 () {num = 100}} class Parent2 {protected: int num public: Parent2 () {num = 200}} class Child: public Parent1, public Parent2 { สาธารณะ: void function () {cout<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 } 

เอาต์พุต

ถ่ายโอนไฟล์ไปยังอินสแตนซ์ ec2 windows

ดำเนินการต่อในบทความนี้เกี่ยวกับ Scope Resolution Operator ใน C ++

เนมสเปซ

สมมติว่าเรามีสองเนมสเปซและทั้งสองมีคลาสที่มีชื่อเดียวกัน ดังนั้นเพื่อหลีกเลี่ยงความขัดแย้งใด ๆ เราสามารถใช้ชื่อเนมสเปซกับตัวดำเนินการแก้ไขขอบเขต ในตัวอย่างด้านล่างเรากำลังใช้ std :: cout .

ตัวอย่าง

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

เอาต์พุต

หลังจากผ่านโปรแกรมข้างต้นแล้วคุณจะเข้าใจทุกอย่างเกี่ยวกับตัวดำเนินการแก้ไขขอบเขตใน C ++ ฉันหวังว่าบล็อกนี้จะให้ข้อมูลและเพิ่มมูลค่าให้กับคุณ

หลังจากรันโปรแกรมข้างต้นแล้วคุณจะเข้าใจ Scope Resolution Operator ใน C ++ ดังนั้นเราจึงมาถึงตอนท้ายของบทความ 'Quicksort in Java' นี้ หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดู Java Training โดย Edureka ซึ่งเป็น บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด