Kaip geriausiai panaudoti taikymo srities skiriamosios gebos operatorių C ++ versijoje?



Šis straipsnis supažindins jus su taikymo srities sprendimo operatoriumi C ++ ir tęsis po programinės demonstracijos, kad suprastumėte tai išsamiau.

Kaip rodo pavadinimas, „Scope resolution“ operatorius naudojamas paslėptiems vardams gauti dėl kintamų apimčių, kad galėtumėte juos vis tiek naudoti. Šiame straipsnyje mes suprasime, kaip naudoti srities skiriamosios gebos operatorių C ++ ir kokie yra jo skirtingi tikslai .

C ++ srityje srities skiriamosios gebos operatorius yra ::. Apimties skyros operatorius C ++ gali būti naudojamas:





Dabar supraskime kiekvieną tikslą po vieną naudodami pavyzdžius.

Prieiga prie visuotinio kintamojo, kai yra vietinis kintamasis su toks pat vardas

Norėdami pasiekti visuotinį kintamąjį, galite naudoti srities skiriamosios gebos operatorių, jei turite vietinį kintamąjį tuo pačiu pavadinimu. Žemiau pateiktame pavyzdyje mes turime du kintamuosius, abu pavadinančius numerius su visuotine ir vietine apimtimi. Taigi, norėdami pasiekti pagrindinį klasės kintamąjį numerį, turite naudoti srities skiriamosios gebos operatorių (t. Y .: :: num).



Pavyzdys

#include naudojant vardų sritį std int num = 30 // Visuotinio kintamojo numerio inicializavimas num int main () {int num = 10 // Vietinio kintamojo num cout inicijavimas<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Rezultatas

java rasti didžiausią masyvo vertę

Toliau su šiuo straipsniu apie taikymo srities skiriamosios gebos operatorių C ++



Funkcijos apibrėžimas už klasės ribų

Jei deklaruojate funkciją klasėje ir vėliau norite ją apibrėžti už klasės ribų, galite tai padaryti naudodami srities skiriamosios gebos operatorių. Žemiau pateiktame pavyzdyje mes deklaruojame „Speed ​​in Class Bike“ funkciją. Vėliau mes apibrėžiame pagrindinės klasės funkciją, naudodami taikymo srities rezoliucijos operatorių.

Pavyzdys

#include naudojant vardų srities standartinės klasės „Bike“ {public: // Tiesiog funkcijų deklaracija negaliojantis greitis ()} // Greičio funkcijos apibrėžimas už „Bike“ klasės ribų naudojant :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Rezultatas

Toliau su šiuo straipsniu apie taikymo srities skiriamosios gebos operatorių C ++

Prieiga prie statinės klasės kintamieji

Klasės statinį kintamąjį galite pasiekti naudodami klasės pavadinimo ir taikymo srities operatorių (t. Y. Klasės_pavadinimas :: statinis_kintamasis). Žemiau pateiktame pavyzdyje galite pamatyti statinį kintamąjį klasėje. Mes nustatome kintamąjį už klasės ribų, naudodami srities rezoliucijos operatorių. Tada mes jį pasiekiame naudodami klasės pavadinimo ir taikymo srities operacijų operatorių.

Pavyzdys

#include naudojant vardų srities standartinę klasę Pabandykite {static int num1 public: static int num2 // Vietinis parametras slepia klasės narį // Klasės nariui prie jo galima prisijungti naudojant :: void funkciją (int num1) {// num1 statinį kintamąjį galima pasiekti naudojant :: // nepaisant vietinio kintamojo 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 } 

Rezultatas

Toliau su šiuo straipsniu apie taikymo srities skiriamosios gebos operatorių C ++

Nurodymas kitos klasės klasei

Abiejose klasėse galite sukurti įdėtas klases su tais pačiais kintamųjų pavadinimais. Prie abiejų kintamųjų galite prisijungti naudodami srities skyros operatorių. Vidinės klasės kintamajam reikia naudoti Outer_Class :: Inner_Class :: kintamasis.

Pavyzdys

#include naudojant vardų srities standartinę klasę „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}

Toliau su šiuo straipsniu apie taikymo srities skiriamosios gebos operatorių C ++

Daugkartinio paveldėjimo atveju

Jei turite dvi tėvų klases su tais pačiais kintamųjų pavadinimais ir abu juos paveldite antrinėje klasėje, prieigai prie atskirų kintamųjų galite naudoti srities skyros operatorių su klasės pavadinimu.

Žemiau pateiktame pavyzdyje mes kuriame dvi tėvų klases „Parent1“ ir „Parent2“, ir jų abiejų kintamasis skaičius yra. Kai paveldime abu juos „Child“ klasėje, galime prieiti prie abiejų skaičių kintamųjų naudodami klasės pavadinimo ir taikymo srities operatorių.

Pavyzdys

#include naudojant vardų sritį standartinė klasė Tėvas1 {apsaugotas: int num public: Tėvas1 () {num = 100}} klasė Tėvas2 {apsaugotas: int skaičius viešas: Tėvas2 () {num = 200}} klasė Vaikas: viešas Tėvas1, viešas Tėvas2 { public: void funkcija () {cout<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 } 

Rezultatas

Toliau su šiuo straipsniu apie taikymo srities skiriamosios gebos operatorių C ++

Vardų sritis

Tarkime, kad turime dvi vardų sritis ir abiejose yra klasė tuo pačiu pavadinimu. Taigi, norėdami išvengti bet kokio konflikto, galime naudoti vardų srities pavadinimą su srities sprendimo operatoriumi. Žemiau pateiktame pavyzdyje mes naudojame std :: cout .

Pavyzdys

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

Rezultatas

Dabar, praėję pirmiau nurodytas programas, būtumėte viską supratę apie taikymo srities skyrimo operatorių C ++. Tikiuosi, kad šis tinklaraštis yra informatyvus ir suteikia jums pridėtinės vertės.

Dabar, atlikę pirmiau minėtą programą, būtumėte supratę taikymo srities rezoliucijos operatorių C ++. Taigi mes priėjome šį straipsnį apie „Quicksort in Java“. Jei norite sužinoti daugiau, apsilankykite patikimos internetinės mokymosi įmonės „Edureka“ „Java“ mokymuose. „Edureka“ „Java J2EE“ ir SOA mokymo ir sertifikavimo kursai skirti mokyti jus tiek pagrindinėms, tiek pažangesnėms „Java“ koncepcijoms kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Turite mums klausimą? Prašau tai paminėti šio tinklaraščio komentarų skiltyje, ir mes kuo greičiau susisieksime su jumis.