Ką daro :: veikia C++?

Ka Daro Veikia C



C++ yra universali programavimo kalba, kuri kūrėjams siūlo platų funkcijų spektrą. Viena iš dažniausiai naudojamų C++ funkcijų yra apimties sprendimo operatorius , taip pat žinomas kaip dvitaškis (::) . Nepaisant to, kad ji yra gyvybiškai svarbi kalbos dalis, dviguba dvitaškis operatorius gali sukelti painiavą daugeliui kūrėjų, ypač tiems, kurie jį naudoja naujokai.

Šiame vadove apžvelgsime dvitaškis (::) operatorius C++ ir kaip jis veikia skirtingais scenarijais.

Ką daro :: veikia C++?

C++ kalboje apimties rezoliucija operatorius (::) naudojamas įvairiuose apimties lygiuose esančių kintamųjų pavadinimams gauti. Programavimo apimtis reiškia kontekstą, kuriame galima pasiekti kintamuosius ir funkcijas.







Naudojimas :: įvairiais atvejais C++

C++ kalboje apimties skyrimo operatorius (::) gali būti naudojamas įvairiai, priklausomai nuo konteksto, kuriame jis naudojamas. Toliau pateikiami keli žymūs šio operatoriaus naudojimo būdai:



1: Pasiekite kintamąjį arba funkciją kitoje vardų erdvėje

A vardų erdvė C++ naudojamas sugrupuoti susijusias funkcijas, klases ir kintamuosius, kad būtų išvengta pavadinimų konfliktų. Kai apibrėžiate kintamąjį arba funkciją a vardų erdvė , kintamojo arba funkcijos pavadinimas matomas tik tame vardų erdvė .



C++ kalboje galite naudoti apimties skyrimo operatorius (::) kartu su vardų erdvė pavadinimą ir kintamojo arba funkcijos pavadinimą, kad pasiektumėte kintamąjį arba funkciją, apibrėžtą kitoje vardų erdvėje. Tai leidžia pasiekti kintamąjį arba funkciją iš a vardų erdvė išskyrus tą, kurioje jis buvo sukurtas.





Norėdami suprasti aukščiau pateiktą atvejį, kaip pavyzdį apsvarstykite šį kodą:

#include

naudojant vardų sritį std ;

vardų erdvės matematika {

konst dvigubai PI = 3.14159 ;

dvigubai kvadratas ( dvigubai x ) {

grąžinti x * x ;

}

}

tarpt pagrindinis ( ) {

cout << 'PI reikšmė yra: ' << matematika :: PI << endl ;

cout << '5 kvadratas yra: << matematika :: kvadratas ( 5 ) << endl ;

grąžinti 0 ;

}

Aukščiau pateiktas kodas naudoja matematikos vardų erdvė pasiekti „PI“ pastovus ir 'kvadratas' funkcija naudojant apimties skyros operatorius '::' . Tada jis išspausdina reikšmes į konsolę.



Išvestis

2: Pasiekite visuotinį kintamąjį programoje

Kai programoje yra tas pats vietinių ir visuotinių kintamųjų pavadinimas, vietinis kintamasis gali paslėpti visuotinį. Tokiose situacijose galite naudoti apimties skyrimo operatorius (::) Norėdami pasiekti visuotinį kintamąjį. Šis operatorius leidžia mums aiškiai nurodyti visuotinį kintamąjį pagal jo apimtį.

Pavyzdžiui, toliau pateiktame kode mes nurodėme visuotinį kintamąjį ‘a “ per apimties skyros operatorius(::) , iš funkcijos viduje, kur buvo apibrėžtas vietinis kintamasis tuo pačiu pavadinimu:

#include

naudojant vardų sritį std ;

tarpt a = penkiolika ;

tarpt pagrindinis ( )

{

tarpt a = 35 ;

cout << 'Globalinio kintamojo a reikšmė yra' << :: a << endl ;

cout << 'Vietinio kintamojo a reikšmė yra' << a << endl ;

grąžinti 0 ;

}

Aukščiau pateiktame kode kintamasis a yra už pagrindinės funkcijos ribų pasaulinis kintamasis o pagrindinės funkcijos kintamasis a yra vietinis kintamasis tuo pačiu pavadinimu kaip ir visuotinis kintamasis. Cout teiginyje mes panaudojome apimties skyros operatorių, kad išspausdintume visuotinį kintamąjį a .

Išvestis

3: apibrėžkite funkciją už klasės ribų

C++ kalboje galite apibrėžti klasės funkciją už klasės apibrėžimo ribų ir tai galima padaryti naudojant apimties skyrimo operatorius (::) nurodyti, kuriai klasei funkcija priklauso. Tai būtina, nes funkcija apibrėžta už klasės ribų.

Čia yra kodo pavyzdys, rodantis, kaip naudojamas apimties sprendimo operatorius :

#include

naudojant vardų sritį std ;



klasė myClass {

viešas :

tuštuma mano funkcija ( ) ;

} ;

tuštuma Mano klasė :: mano funkcija ( ) {

cout << 'myfunction() Called!' ;

}

tarpt pagrindinis ( )

{

myClass classObj ;

klasėObj. mano funkcija ( ) ;

grąžinti 0 ;

}

Aukščiau pateiktame kode nario funkcija mano funkcija () yra apibrėžtas už klasės ribų naudojant apimties sprendimo operatorius :: tai nurodyti mano funkcija () priklauso myClass klasei.

Išvestis

4: prieiga prie statinių klasės narių

C++ kalboje, kai klasėje yra statinis narys ir vietinis kintamasis tuo pačiu pavadinimu, apimties skyrimo operatorius (::) gali būti naudojamas norint pasiekti statinius klasės narius. Tai leidžia programai atskirti vietinį kintamąjį nuo statinio nario.

Čia yra kodo pavyzdys, susijęs su naudojimu apimties sprendimo operatorius tokiam atvejui:

#include

naudojant vardų sritį std ;

klasė myClass {

viešas :

statinis tarpt myStatVar ;

} ;

tarpt Mano klasė :: myStatVar = 5 ;

tarpt pagrindinis ( ) {

tarpt myStatVar = 10 ;

cout << 'Vietinis kintamasis myStatVar: ' << myStatVar << endl ;

cout << 'Klasės kintamasis myStatVar:' << Mano klasė :: myStatVar << endl ;

grąžinti 0 ;

}

Pirmiau pateikta programa pirmiausia apibrėžia klasę Mano klasė su statiniu nario kintamuoju myStatVar . Tada jis apibrėžia vietinį kintamąjį tuo pačiu pavadinimu pagrindinėje programos funkcijoje. Norėdami pasiekti klasės kintamąjį, apimties skyrimo operatorius (::) naudojamas su klasės pavadinimu Mano klasė . Programa išveda abiejų kintamųjų reikšmes į konsolę.

Išvestis

5: naudokite su keliais paveldėjimais

The apimties skyrimo operatorius (::) taip pat naudojamas norint nurodyti, kurią nario versiją naudoti, kai C++ klasė yra kilusi iš kelių pirminių klasių, turinčių narių kintamuosius arba funkcijas tuo pačiu pavadinimu. Galime atskirti įvairias to paties nario versijas naudodami apimties sprendimo operatorius po kurio nurodomas tėvų klasės pavadinimas ir nario vardas.

#include

naudojant vardų sritį std ;

klasės tėvas1 {

viešas :

tuštuma spausdinti ( ) {

cout << 'Tai klasės Parent1 spausdinimo funkcija.' << endl ;

}

} ;

klasė Tėvai2 {
viešas :
tuštuma spausdinti ( ) {
cout << 'Tai klasės Parent2 spausdinimo funkcija.' << endl ;
}
} ;
klasė myClass : viešas Tėvas1 , viešas Tėvas2 {
privatus :
tarpt ant vieno ;

viešas :
Mano klasė ( tarpt n ) {
ant vieno = n ;
}
tuštuma spausdinti ( ) {
Tėvai1 :: spausdinti ( ) ; // iškvieskite Parent1 spausdinimo funkciją
Tėvai2 :: spausdinti ( ) ; // iškvieskite Parent2 spausdinimo funkciją
cout << 'Skaičiaus reikšmė yra: << ant vieno << endl ; // išspausdinkite skaičių reikšmę
}
} ;
tarpt pagrindinis ( ) {
myClass obj ( 42 ) ; // sukurti MyClass objektą, kurio skaičius inicijuotas iki 42
obj. spausdinti ( ) ; // iškviečia objekto funkciją print().
grąžinti 0 ;
}

Aukščiau pateikta programa parodo, kaip naudojamas apimties skyrimo operatorius (::) atskirti spausdinimo funkcijas Tėvai1 ir Tėvai2 kai abi klases paveldi Mano klasė. Iškviečiant funkcijas su Tėvų klasė pavadinimas, esantis prieš funkcijos pavadinimą, galime nurodyti, kurią funkcijos versiją naudoti.

Išvestis

Apatinė eilutė

The apimties skyrimo operatorius (::) yra gyvybiškai svarbus C++ komponentas, naudojamas norint pasiekti kintamųjų pavadinimus įvairiuose apimties lygiuose. Operatorius gali būti naudojamas įvairiai, įskaitant prieigą prie kintamojo arba funkcijos kitoje vardų erdvėje, prieigą prie visuotinio kintamojo, funkcijos apibrėžimą už klasės ribų, prieigą prie statinių klasės narių ir kelių paveldėjimo būdų naudojimą. Nors naujiems kūrėjams tai gali būti painu, suprasdami apimties skyrimo operatorius (::) yra būtina gerai programavimo praktikai.