Ako najlepšie využiť operátora riešenia rozsahu v C ++?



Tento článok vás zoznámi s operátorom rozlíšenia rozsahu v jazyku C ++ a podrobným porozumením vás prevedie programovou ukážkou.

Ako už názov napovedá, operátor rozlíšenia rozsahu sa používa na získanie skrytých mien kvôli variabilným rozsahom, aby ste ich mohli stále používať. V tomto článku pochopíme, ako používať operátor rozlíšenia rozsahu v C ++ a aké sú jeho odlišné účely od a .

V C ++ je operátor rozlíšenia rozsahu ::. Operátor rozlíšenia rozsahu v C ++ sa dá použiť na:





Teraz si ukážeme každý z účelov pomocou príkladov.

Prístup k globálnej premennej, ak existuje lokálna premenná s rovnaké meno

Ak máte lokálnu premennú s rovnakým názvom, môžete na prístup k globálnej premennej použiť operátor rozlíšenia rozsahu. V nasledujúcom príklade máme dve premenné, ktoré obidve pomenujú num s globálnym a lokálnym rozsahom. Pre prístup k globálnej premennej num v hlavnej triede musíte použiť operátor rozlíšenia rozsahu (t.j. :: num).



Príklad

#include using namespace std int num = 30 // Inicializácia globálnej premennej num int main () {int num = 10 // Inicializácia lokálnej premennej num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Výkon

Pokračujeme týmto článkom o Scope Resolution Operator v C ++



Definovanie funkcie mimo triedy

Ak deklarujete funkciu v triede a potom ju chcete definovať mimo triedy, môžete to urobiť pomocou operátora rozlíšenia rozsahu. V nasledujúcom príklade deklarujeme funkciu Speed ​​in Class Bike. Neskôr definujeme funkciu v hlavnej triede pomocou operátora rozlíšenia rozsahu.

Príklad

#include using namespace std class Bike {public: // Just the Function Declaration void Speed ​​()} // Definovanie funkcie Speed ​​mimo triedy Bike pomocou :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Výkon

Pokračujeme týmto článkom o Scope Resolution Operator v C ++

Prístup k statickému údaju triedy premenné

K statickej premennej triedy môžete pristupovať pomocou operátora názvu triedy a rozlíšenia rozsahu (t. J. Class_name :: static_variable). V nasledujúcom príklade môžete vidieť, že v triede deklarujeme statickú premennú. Premennú mimo triedy definujeme pomocou operátora rozlíšenia rozsahu. Potom k nej pristupujeme pomocou operátora názvu triedy a rozlíšenia rozsahu.

Príklad

#include using namespace std class Vyskúšajte {static int num1 public: static int num2 // Lokálny parameter skryje člena triedy // K členovi triedy je možné získať prístup pomocou funkcie :: void (int num1) {// k statickej premennej num1 sa dá dostať pomocou :: // napriek lokálnej premennej 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 } 

Výkon

Pokračujeme týmto článkom o Scope Resolution Operator v C ++

Odkaz na triedu v inej triede

V obidvoch triedach môžete vytvoriť vnorenú triedu s rovnakými názvami premenných. K obidvom premenným máte prístup pomocou operátora rozlíšenia rozsahu. Pre premennú vnútornej triedy musíte použiť Outer_Class :: Inner_Class :: premenná.

Príklad

#include using namespace 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}

Pokračujeme týmto článkom o Scope Resolution Operator v C ++

V prípade viacnásobného dedičstva

Ak máte dve nadradené triedy s rovnakými názvami premenných a obe dedíte v podradenej triede, môžete na prístup k jednotlivým premenným použiť operátor rozlíšenia rozsahu s názvom triedy.

V nasledujúcom príklade vytvárame dve nadradené triedy Parent1 a Parent2 a obe majú premennú num. Keď dedíme obidve z nich v triede Child, máme prístup k obom premenným pomocou operátora názov triedy a rozlíšenie rozsahu.

Príklad

#include using namespace std class Parent1 {protected: int num public: Parent1 () {num = 100}} class Parent2 {protected: int num public: Parent2 () {num = 200}} class Child: public Parent1, public 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 } 

Výkon

Pokračujeme týmto článkom o Scope Resolution Operator v C ++

Menný priestor

Predpokladajme, že máme dva menné priestory a oba obsahujú triedu s rovnakým názvom. Aby sme sa vyhli akýmkoľvek konfliktom, môžeme s operátorom rozlíšenia rozsahu použiť názov menného priestoru. V nasledujúcom príklade používame std :: cout .

Príklad

čo je premenlivé a nemenné
#include int main () {std :: cout<< 'Hello' << std::endl } 

Výkon

Teraz, keď ste prešli vyššie uvedenými programami, pochopili by ste všetko o operátore rozlíšenia rozsahu v C ++. Dúfam, že tento blog bude informatívny a bude pre vás pridanou hodnotou.

Teraz po vykonaní vyššie uvedeného programu by ste pochopili operátora Scope Resolution Operator v C ++. Tak sme sa dostali na koniec tohto článku o „Quicksort v Jave“. Ak sa chcete dozvedieť viac, vyskúšajte Java Training by Edureka, dôveryhodná online vzdelávacia spoločnosť. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je navrhnutý tak, aby vás vyškolil na základné aj pokročilé koncepty Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto blogu a my sa vám ozveme čo najskôr.