Nagu nimest võib järeldada, kasutatakse muutuja ulatusega varjatud nimede saamiseks operaatori Scope resolution operaatorit, et saaksite neid endiselt kasutada. Selles artiklis mõistame, kuidas kasutada ulatuseralduse operaatorit C ++ keeles ja millised on selle erinevad eesmärgid .
C ++ puhul on ulatuse eraldamise operaator ::. Reguleerimisala eraldusvõime operaatorit C ++ keeles saab kasutada:
teisendused informaatikas koos näitega
- Globaalse muutuja juurde pääsemine, kui leidub sama nimega lokaalne muutuja
- Funktsiooni määratlemine väljaspool klassi
- Juurdepääs klassi staatilistele muutujatele
- Viitamine klassile, mis asub teises klassis
- Mitmekordse pärimise korral
- Nimeruum
Mõelgem nüüd näidete abil iga eesmärki ükshaaval.
Globaalse muutuja juurde pääsemine, kui kohalik muutuja on sama nimega
Kui teil on sama nimega lokaalne muutuja, saate globaalse muutuja juurde pääsemiseks kasutada ulatuseralduse operaatorit. Allpool toodud näites on meil kaks muutujat, mõlemad nimetavad num globaalse ja kohaliku ulatusega. Niisiis, põhiklassi globaalse num muutuja juurde pääsemiseks peate kasutama ulatuseralduse operaatorit (st :: num).
Näide
#include nimeruumi abil st int int = 30 // Globaalse muutuja num int main () initsialiseerimine (int {= num = 10 // Kohaliku muutuja num cout initsialiseerimine<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 }
Väljund
Selle artikliga edasi liikudes skaala eraldusvõime operaator C ++
Klassivälise funktsiooni määratlemine
Kui deklareerite funktsiooni klassis ja soovite hiljem seda väljaspool klassi määratleda, saate seda teha ulatuseralduse operaatori abil. Allpool toodud näites kuulutame välja klassi Speed Bike funktsiooni Speed. Hiljem määratleme funktsiooni põhiklassi, kasutades ulatuseralduse operaatorit.
Näide
#include nimeruumi standardklassiga Bike {public: // Just the Function Declaration void Speed ()} // Funktsiooni Speed määratlemine väljaspool Bike klassi kasutades :: void Bike :: Speed () {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 }
Väljund
Selle artikliga edasi liikudes skaala eraldusvõime operaator C ++
Juurdepääs klassi staatikale muutujad
Kursuse staatilisele muutujale pääsete juurde, kasutades klassi nime ja ulatuse eraldusoperaatorit (st klassi_nimi :: staatiline_muutuja). Allpool toodud näites näeme, et kuulutame klassi staatilise muutuja. Muutuja määratleme väljaspool klassi, kasutades ulatuseralduse operaatorit. Siis pääseme sellele juurde, kasutades klassi nime ja ulatuse eraldusoperaatorit.
Näide
#include nimeruumi standardklassiga Proovige {static int num1 public: static int num2 // Kohalik parameeter varjab klassi liiget // Klassi liikmele pääseb sellele juurde funktsiooni :: void abil (int num1) {// stat1 :: // vaatamata kohalikule muutujale nr1 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 }
Väljund
Selle artikliga edasi liikudes skaala eraldusvõime operaator C ++
Viitamine klassile, mis asub teises klassis
Mõlemas klassis saate luua pesastatud klassi ühesuguste muutujate nimedega. Mõlemale muutujale pääsete juurde ulatuseralduse operaatori abil. Siseklassi muutuja jaoks peate kasutama Väline_klass :: Sisemine_klass :: muutuja.
Näide
#include nimeruumi kasutamine 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}
Selle artikliga edasi liikudes skaala eraldusvõime operaator C ++
Mitmekordse pärimise korral
Kui teil on kaks ühesuguse muutuja nimega vanemklassi ja pärite mõlemad lapseklassist, saate üksikute muutujate juurde pääsemiseks kasutada klassi nimes oleva ulatuseralduse operaatorit.
Allpool toodud näites loome kaks vanemklassi Parent1 ja Parent2 ning mõlemal on muutuja arv. Kui me mõlemad pärime lapseklassist, pääseme klassi nime ja ulatuse eraldusoperaatori abil juurde mõlemale muutujale.
Näide
#include kasutades nimeruumi standardklass Vanem1 {kaitstud: int num public: Vanem1 () {num = 100}} klass Vanem2 {kaitstud: int num public: Vanem2 () {num = 200}} klass Laps: avalik Vanem1, avalik Vanem2 { public: void function () {cout<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 }
Väljund
Selle artikliga edasi liikudes skaala eraldusvõime operaator C ++
Nimeruum
Oletame, et meil on kaks nimeruumi ja mõlemad sisaldavad sama nimega klassi. Nii et konfliktide vältimiseks võime kasutada nimeruumi nime ulatuseralduse operaatoriga. Allpool toodud näites kasutame std :: cout .
Näide
#include int main () {std :: cout<< 'Hello' << std::endl }
Väljund
Nüüd pärast ülaltoodud programmide läbimist oleksite kõik mõistnud C ++ ulatuseralduse operaatorist. Loodan, et see ajaveeb on informatiivne ja annab teile lisaväärtust.
Pärast ülaltoodud programmi käivitamist oleksite mõistnud Scope Resolution Operaatorit C ++ keeles. Nii oleme jõudnud selle artikli juurde, mis käsitleb teemat ‘Quicksort in Java’. Kui soovite rohkem teada saada, vaadake usaldusväärse veebipõhise õppefirma Edureka Java koolitust. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java põhiliste kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.
Kas teil on meile küsimus? Palun mainige seda selle blogi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.