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