Mitä :: tekee C++:ssa?

Mita Tekee C Ssa



C++ on monipuolinen ohjelmointikieli, joka tarjoaa kehittäjille laajan valikoiman toimintoja. Yksi C++:n yleisimmin käytetyistä ominaisuuksista on laajuuden resoluution operaattori , joka tunnetaan myös nimellä kaksoispiste (::) . Huolimatta siitä, että se on tärkeä osa kieltä, kaksoispiste operaattori voi olla hämmentävä monille kehittäjille, varsinkin niille, jotka ovat uusia.

Tässä oppaassa tarkastelemme kaksoispiste (::) -operaattori C++:ssa ja miten se toimii eri skenaarioissa.

Mitä :: tekee C++:ssa?

C++:ssa laajuuden resoluutio operaattori (::) käytetään eri laajuustasoilla olevien muuttujien nimien hakemiseen. Ohjelmoinnin laajuus viittaa kontekstiin, jossa muuttujia ja toimintoja voidaan käyttää.







Käyttökohteet:: eri tapauksissa C++:ssa

C++:ssa kaukoresoluutiooperaattori (::) on useita käyttötarkoituksia riippuen kontekstista, jossa sitä käytetään. Seuraavassa on joitain tämän operaattorin merkittäviä käyttötapoja:



1: Käytä muuttujaa tai funktiota eri nimiavaruudessa

A nimiavaruus käytetään C++:ssa toisiinsa liittyvien funktioiden, luokkien ja muuttujien ryhmittelyyn nimiristiriitojen välttämiseksi. Kun määrität muuttujan tai funktion a:ssa nimiavaruus , muuttujan tai funktion nimi näkyy vain siinä nimiavaruus .



C++:ssa voit käyttää kaukoresoluutiooperaattori (::) kanssa nimiavaruus nimi ja muuttujan tai funktion nimi päästäksesi eri nimiavaruudessa määritettyyn muuttujaan tai funktioon. Näin voit käyttää muuttujaa tai funktiota kohdasta a nimiavaruus muu kuin se, jossa se luotiin.





Ymmärtääksesi yllä olevan tapauksen, harkitse seuraavaa koodia esimerkkinä:

#include

käyttäen nimiavaruutta std ;

nimitilan matematiikka {

konst kaksinkertainen PI = 3,14159 ;

kaksinkertainen neliö ( kaksinkertainen x ) {

palata x * x ;

}

}

int pää ( ) {

cout << 'PI:n arvo on: ' << matematiikka :: PI << endl ;

cout << 'Viiden neliö on:' << matematiikka :: neliö ( 5 ) << endl ;

palata 0 ;

}

Yllä oleva koodi käyttää matemaattinen nimiavaruus päästäksesi käsiksi 'PI' vakio ja 'neliö' -toimintoa käyttämällä laajuuden resoluutiooperaattori '::' . Sitten se tulostaa arvot konsoliin.



Lähtö

2: Käytä globaalia muuttujaa ohjelmassa

Kun ohjelmassa on sama nimi paikallisilla ja globaaleilla muuttujilla, paikallinen muuttuja voi piilottaa globaalin muuttujan. Tällaisissa tilanteissa voit käyttää kaukoresoluutiooperaattori (::) päästäksesi globaaliin muuttujaan. Tämän operaattorin avulla voimme nimenomaisesti viitata globaaliin muuttujaan sen laajuuden perusteella.

Esimerkiksi alla annetussa koodissa olemme viitanneet globaaliin muuttujaan ‘a ' kautta ulottuvuusresoluutiooperaattori(::) , funktion sisältä, jossa on määritetty samanniminen paikallinen muuttuja:

#include

käyttäen nimiavaruutta std ;

int a = viisitoista ;

int pää ( )

{

int a = 35 ;

cout << 'Globalin muuttujan a arvo on' << :: a << endl ;

cout << 'Paikallisen muuttujan a arvo on' << a << endl ;

palata 0 ;

}

Yllä olevassa koodissa pääfunktion ulkopuolella oleva muuttuja a on globaali muuttuja ja pääfunktion muuttuja a on paikallinen muuttuja samalla nimellä kuin globaali muuttuja. Cout-lauseessa olemme käyttäneet laajuuden resoluutiooperaattoria globaalin muuttujan tulostamiseen a .

Lähtö

3: Määritä luokan ulkopuolinen funktio

C++:ssa voit määrittää luokkafunktion luokkamäärittelyn ulkopuolella ja se voidaan tehdä käyttämällä kaukoresoluutiooperaattori (::) määrittääksesi mihin luokkaan funktio kuuluu. Tämä on välttämätöntä, koska funktio on määritelty luokan ulkopuolella.

Tässä on esimerkkikoodi, joka osoittaa tämän koodin käytön laajuuden resoluution operaattori :

#include

käyttäen nimiavaruutta std ;



luokka myClass {

julkinen :

mitätön minun toimintoni ( ) ;

} ;

mitätön luokkani :: minun toimintoni ( ) {

cout << 'myfunction() Called!' ;

}

int pää ( )

{

myClass classObj ;

luokkaObj. minun toimintoni ( ) ;

palata 0 ;

}

Yllä olevassa koodissa jäsentoiminto myfunction() on määritelty luokan ulkopuolella käyttämällä soveltamisalan resoluutiooperaattori :: täsmentää sitä myfunction() kuuluu myClass-luokkaan.

Lähtö

4: Pääsy luokan staattisiin jäseniin

Kun C++:ssa on staattinen jäsen ja luokassa on samanniminen paikallinen muuttuja, kaukoresoluutiooperaattori (::) voidaan käyttää luokan staattisten jäsenten käyttämiseen. Tämä mahdollistaa ohjelman erottamisen paikallisen muuttujan ja staattisen jäsenen välillä.

Tässä on esimerkkikoodi, joka liittyy käyttöön laajuuden resoluution operaattori sellaiseen tapaukseen:

#include

käyttäen nimiavaruutta std ;

luokka myClass {

julkinen :

staattinen int myStatVar ;

} ;

int luokkani :: myStatVar = 5 ;

int pää ( ) {

int myStatVar = 10 ;

cout << 'Paikallinen muuttuja myStatVar:' << myStatVar << endl ;

cout << 'Luokan muuttuja myStatVar:' << luokkani :: myStatVar << endl ;

palata 0 ;

}

Yllä oleva ohjelma määrittelee ensin luokan luokkani staattisen jäsenmuuttujan kanssa myStatVar . Sitten se määrittelee paikallisen muuttujan, jolla on sama nimi ohjelman päätoiminnon sisällä. Päästäksesi luokkamuuttujaan, kaukoresoluutiooperaattori (::) käytetään luokan nimen kanssa luokkani . Ohjelma tulostaa molempien muuttujien arvon konsoliin.

Lähtö

5: Käytä useiden perintöjen kanssa

The kaukoresoluutiooperaattori (::) käytetään myös osoittamaan, mitä jäsenen versiota käytetään, kun C++-luokka on johdettu useista pääluokista, joilla on samannimiset jäsenmuuttujat tai funktiot. Voimme erottaa saman jäsenen eri versiot käyttämällä laajuuden resoluution operaattori perässä vanhemman luokan nimi ja jäsenen nimi.

#include

käyttäen nimiavaruutta std ;

luokan vanhempi 1 {

julkinen :

mitätön Tulosta ( ) {

cout << 'Tämä on luokan Parent1 tulostustoiminto.' << endl ;

}

} ;

luokan vanhempi 2 {
julkinen :
mitätön Tulosta ( ) {
cout << 'Tämä on luokan Parent2 tulostustoiminto.' << endl ;
}
} ;
luokka myClass : julkinen vanhempi1 , julkinen vanhempi2 {
yksityinen :
int yhdellä ;

julkinen :
luokkani ( int n ) {
yhdellä = n ;
}
mitätön Tulosta ( ) {
Vanhempi 1 :: Tulosta ( ) ; // kutsuu Parent1:n tulostustoimintoa
Vanhempi 2 :: Tulosta ( ) ; // kutsuu Parent2:n tulostustoimintoa
cout << 'Num:n arvo on:' << yhdellä << endl ; // tulostaa numeron arvon
}
} ;
int pää ( ) {
myClass obj ( 42 ) ; // Luo MyClass-objekti, jonka num on alustettu 42:een
obj. Tulosta ( ) ; // kutsuu objektin print()-funktiota
palata 0 ;
}

Yllä oleva ohjelma esittelee kaukoresoluutiooperaattori (::) erottaaksesi tulostustoiminnot Vanhempi 1 ja Vanhempi 2 kun molemmat luokat ovat perineet luokkani. Kutsumalla funktioita komennolla Vanhempien luokka funktion nimeä edeltävä nimi, voimme määrittää käytettävän funktion version.

Lähtö

Bottom Line

The kaukoresoluutiooperaattori (::) on tärkeä komponentti C++:ssa, jota käytetään muuttujien nimien käyttämiseen eri laajuustasoilla. Operaattorilla on useita käyttötarkoituksia, mukaan lukien muuttujan tai funktion käyttö eri nimiavaruudessa, pääsy globaaliin muuttujaan, funktion määrittäminen luokan ulkopuolella, luokan staattisten jäsenten käyttö ja useiden perintöjen käyttäminen. Vaikka se voi olla hämmentävää uusille kehittäjille, sen ymmärtäminen kaukoresoluutiooperaattori (::) on välttämätöntä hyvän ohjelmointikäytännön kannalta.