Kuinka parhaiten hyödyntää Scope Resolution Operatoria C ++: ssa?



Tässä artikkelissa esitellään laajennuksen tarkkuuden operaattori C ++: ssa ja seurataan sen ohjelmallista esittelyä yksityiskohtaisen ymmärryksen saamiseksi.

Kuten nimestä voi päätellä, Scope Resolution -operaattoria käytetään piilotettujen nimien saamiseen vaihtelevien laajuuksien vuoksi, jotta voit silti käyttää niitä. Tässä artikkelissa ymmärretään, kuinka laajuusresoluutiooperaattoria käytetään C ++: ssa ja mitkä ovat sen erilaiset tarkoitukset kuin a .

Kohdassa C ++ laajuusresoluutiooperaattori on ::. Laajuusresoluutiooperaattoria C ++: ssa voidaan käyttää:





Ymmärretään nyt jokainen tarkoitus yksi kerrallaan esimerkkien avulla.

Pääsy globaaliin muuttujaan, kun paikallista muuttujaa on sama nimi

Voit käyttää laajuusresoluutiooperaattoria päästäksesi globaaliin muuttujaan, jos sinulla on paikallinen muuttuja samalla nimellä. Alla olevassa esimerkissä meillä on kaksi muuttujaa, joiden molempien nimien lukumäärä on globaali ja paikallinen. Joten pääsyäksesi pääluokan globaaliin num-muuttujaan sinun on käytettävä soveltamisalueen resoluutiooperaattoria (ts. :: num).



Esimerkki

#include käyttämällä nimiavaruutta std int num = 30 // Globaalin muuttujan num int main () alustaminen () {int num = 10 // Paikallisen muuttujan num cout alustaminen<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Tuotos

Siirrytään tämän artikkelin alaan Scope Resolution Operator C ++



Funktion määrittäminen luokan ulkopuolella

Jos ilmoitat funktion luokassa ja haluat myöhemmin määritellä sen luokan ulkopuolella, voit tehdä sen käyttämällä laajuuden tarkkuusoperaattoria. Alla olevassa esimerkissä julistetaan toiminto Speed ​​in Class Bike. Myöhemmin määrittelemme pääluokan toiminnon soveltamisala-operaattorilla.

Esimerkki

#include nimitilan käyttäminen vakioluokka Bike {public: // Just the Function Declaration void Speed ​​()} // Nopeustoiminnon määrittäminen Bike-luokan ulkopuolella käyttämällä :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Tuotos

Siirrytään tämän artikkelin alaan Scope Resolution Operator C ++

Pääset luokan staattiseen muuttujat

Voit käyttää luokan staattista muuttujaa luokan nimen ja laajuuden tarkistusoperaattorilla (eli luokan_nimi :: staattinen_muuttuja). Alla olevasta esimerkistä näet, että ilmoitamme staattisen muuttujan luokassa. Määritämme luokan ulkopuolella olevan muuttujan soveltamisala-operaattorilla. Sitten käytämme sitä luokan nimen ja laajuuden ratkaisuoperaattorin avulla.

Esimerkki

#include nimitilan käyttäminen vakioluokka Kokeile {staattinen int numero1 julkinen: staattinen int numero2 // Paikallinen parametri piilottaa luokan jäsen // Luokan jäsen pääsee siihen käyttämällä :: void-toimintoa (int numero1) {// staattinen muuttuja num1 voidaan :: // paikallisesta muuttujasta num1 cout huolimatta<< '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 } 

Tuotos

Siirrytään tämän artikkelin alaan Scope Resolution Operator C ++

tiukka kytkentä vs löysä kytkentä

Viitataan toiseen luokkaan kuuluvaan luokkaan

Voit luoda sisäkkäisen luokan samoilla muuttujien nimillä molempiin luokkiin. Voit käyttää molempia muuttujia käyttämällä tarkkuuden tarkkuusoperaattoria. Sisäisen luokan muuttujaa varten sinun on käytettävä Outer_Class :: Inner_Class :: muuttuja.

Esimerkki

#include nimitilan käyttäminen vakioluokka Ulkopuolinen luokka {julkinen: int num luokka Sisä_luokka {julkinen: int num staattinen int x}} sis Ulkoluokka :: Sisä_luokka :: x = 5 int main () {Ulkopuolen luokka A Ulkopuolen luokka :: Sisäpuolen luokka B}

Siirrytään tämän artikkelin alaan Scope Resolution Operator C ++

Useiden perintöjen tapauksessa

Jos sinulla on kaksi vanhemman luokkaa, joilla on samat muuttujien nimet, ja perit molemmat aliluokasta, voit käyttää yksittäisten muuttujien käyttöä luokan tarkkuudenoperaattorilla, jolla on luokan nimi.

Alla olevassa esimerkissä luomme kaksi vanhempien luokkaa Parent1 ja Parent2, ja molemmilla on muuttuja numero. Kun perimme molemmat lapsiluokasta, voimme käyttää molempia muuttujia luokan nimen ja laajuuden tarkistusoperaattorin avulla.

Esimerkki

#include käyttämällä nimitilaa vakioluokka Vanhempi1 {suojattu: int num public: Parent1 () {num = 100}} luokka Parent2 {suojattu: int num public: Parent2 () {num = 200}} luokka Lapsi: public Parent1, julkinen Parent2 { 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 } 

Tuotos

Siirrytään tämän artikkelin alaan Scope Resolution Operator C ++

Nimitila

Oletetaan, että meillä on kaksi nimitilaa ja molemmat sisältävät luokan samalla nimellä. Joten ristiriitojen välttämiseksi voimme käyttää nimitilan nimeä laajuusratkaisuoperaattorin kanssa. Alla olevassa esimerkissä käytämme vakio :: cout .

Esimerkki

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

Tuotos

Nyt kun olet käynyt läpi yllä olevat ohjelmat, olisit ymmärtänyt kaiken C ++: n resoluution operaattorista. Toivon, että tämä blogi on informatiivinen ja lisäarvoa sinulle.

Nyt kun olet suorittanut yllä mainitun ohjelman, olisit ymmärtänyt Scope Resolution Operator C ++: ssa. Siksi olemme päässeet tämän Quicksort in Java -artikkelin loppuun. Jos haluat oppia lisää, tutustu luotettavan verkkokoulutusyrityksen Edurekan Java-koulutukseen. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän blogin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.