Bagaimana Menggunakan Operator Resolusi Skop Terbaik di C ++?



Artikel ini akan memperkenalkan anda kepada pengendali resolusi skop di C ++ dan menindaklanjuti demonstrasi program untuk pemahaman terperinci.

Seperti namanya, operator resolusi Skop digunakan untuk mendapatkan nama tersembunyi kerana ruang lingkup yang berubah-ubah sehingga anda masih dapat menggunakannya. Dalam artikel ini kita akan memahami cara menggunakan operator resolusi skop di C ++ & apa tujuannya yang berbeza dari a .

Dalam C ++, pengendali resolusi skop adalah ::. Operator resolusi skop di C ++ dapat digunakan untuk:





Sekarang mari kita fahami setiap tujuan satu persatu dengan bantuan contoh.

Mengakses pemboleh ubah global apabila terdapat pemboleh ubah tempatan dengan nama yang sama

Anda boleh menggunakan pengendali resolusi skop untuk mengakses pemboleh ubah global jika anda mempunyai pemboleh ubah tempatan dengan nama yang sama. Dalam contoh di bawah ini kita mempunyai dua pemboleh ubah, iaitu nama bilangan dengan skop global & tempatan. Oleh itu, untuk mengakses pembolehubah num global di kelas utama, anda perlu menggunakan pengendali resolusi skop (iaitu :: num).



Contohnya

cara menukar double menjadi int di java
#masuk menggunakan namespace std int num = 30 // Memulakan pembolehubah global num int utama () {int num = 10 // Memulakan pembolehubah tempatan num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Pengeluaran

Teruskan dengan artikel ini mengenai Operator Skop Resolusi Di C ++



Menentukan Fungsi Di Luar Kelas

Sekiranya anda menyatakan fungsi dalam kelas dan kemudian ingin menentukannya di luar kelas, anda boleh melakukannya menggunakan operator resolusi skop. Dalam contoh di bawah, kami menyatakan fungsi Speed ​​in Class Bike. Kemudian kami menentukan fungsi di kelas utama menggunakan operator resolusi skop.

Contohnya

#masuk menggunakan namespace std class Bike {public: // Just the Function Declaration void Speed ​​()} // Mendefinisikan fungsi Speed ​​di luar kelas Bike menggunakan :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Pengeluaran

Melanjutkan dengan artikel ini mengenai Skop Operator Resolusi Di C ++

Mengakses statik kelas pemboleh ubah

Anda boleh mengakses pembolehubah statik kelas dengan menggunakan nama kelas & pengendali resolusi skop (iaitu class_name :: static_variable). Anda dapat lihat dalam contoh di bawah, kami menyatakan pemboleh ubah statik dalam kelas. Kami menentukan pemboleh ubah di luar kelas menggunakan operator resolusi skop. Kemudian kami mengaksesnya menggunakan pengendali resolusi nama & skop kelas.

Contohnya

#masuk menggunakan namespace std class Cuba {static int num1 public: static int num2 // Parameter tempatan menyembunyikan ahli kelas // Ahli kelas boleh diakses menggunakan :: fungsi void (int num1) {// num1 pemboleh ubah statik dapat diakses menggunakan :: // walaupun terdapat pembolehubah tempatan 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 } 

Pengeluaran

Melanjutkan dengan artikel ini mengenai Skop Operator Resolusi Di C ++

Merujuk kepada kelas di dalam kelas yang lain

Anda boleh membuat kelas bersarang dengan nama pemboleh ubah yang sama di kedua-dua kelas. Anda boleh mengakses kedua-dua pemboleh ubah menggunakan operator resolusi skop. Untuk pemboleh ubah kelas dalam, anda perlu menggunakan Outer_Class :: Inner_Class :: pemboleh ubah.

Contohnya

#sertakan dengan menggunakan namespace class std 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}

Melanjutkan dengan artikel ini mengenai Skop Operator Resolusi Di C ++

Sekiranya berlaku Warisan berganda

Sekiranya anda mempunyai dua kelas induk dengan nama pemboleh ubah yang sama dan anda mewarisi keduanya di kelas anak, maka anda boleh menggunakan operator resolusi skop dengan nama kelas untuk mengakses pemboleh ubah individu.

Dalam contoh di bawah, kami membuat dua kelas induk Parent1 & Parent2, dan kedua-duanya mempunyai bilangan berubah. Apabila kita mewarisi kedua-duanya di kelas Anak, kita dapat mengakses kedua-dua pembolehubah num menggunakan nama kelas & operator resolusi skop.

Contohnya

#include using namespace std class Parent1 {protected: int num public: Parent1 () {num = 100}} class Parent2 {protected: int num public: Parent2 () {num = 200}} kelas Anak: public Parent1, public Parent2 { awam: fungsi batal () {cout<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 } 

Pengeluaran

Melanjutkan dengan artikel ini mengenai Skop Operator Resolusi Di C ++

Ruang Nama

Katakan kita mempunyai dua ruang nama & kedua-duanya mengandungi kelas dengan nama yang sama. Oleh itu, untuk mengelakkan konflik, kami boleh menggunakan nama ruang nama dengan pengendali penyelesaian skop. Dalam contoh di bawah ini kita gunakan std :: cout .

Contohnya

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

Pengeluaran

Sekarang setelah melalui program di atas, anda akan memahami segala-galanya mengenai pengendali resolusi skop di C ++. Saya harap blog ini memberi maklumat dan nilai tambah kepada anda.

Sekarang setelah melaksanakan program di atas, anda akan memahami Pengendali Resolusi Skop Di C ++. Oleh itu, kita telah mengakhiri artikel ini mengenai 'Quicksort in Java'. Sekiranya anda ingin mempelajari lebih lanjut, lihat Java Training oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.

Ada soalan untuk kami? Sila sebutkan di bahagian komen blog ini dan kami akan menghubungi anda secepat mungkin.