Kao što naziv sugerira, operator razlučivosti opsega koristi se za dobivanje skrivenih imena zbog promjenjivih opsega tako da ih i dalje možete koristiti. U ovom ćemo članku razumjeti kako se koristi operator razlučivanja opsega u C ++ i koje su njegove različite svrhe od a .
U C ++-u, operator razlučivosti opsega je ::. Operator razlučivosti opsega u jeziku C ++ može se koristiti za:
- Pristup globalnoj varijabli kada postoji lokalna varijabla s istim imenom
- Definiranje funkcije izvan klase
- Pristup statičkim varijablama klase
- Upućivanje na razred unutar drugog razreda
- U slučaju višestrukog nasljeđivanja
- Prostor imena
Sada shvatimo svaku svrhu jednu po jednu uz pomoć primjera.
kontroverze o umjetnoj inteligenciji za i protiv
Pristupanje globalnoj varijabli kada postoji lokalna varijabla sa isto ime
Možete koristiti operator razlučivosti opsega za pristup globalnoj varijabli ako imate lokalnu varijablu s istim imenom. U donjem primjeru imamo dvije varijable koje imaju ime num s globalnim i lokalnim opsegom. Dakle, za pristup globalnoj varijabli num u glavnoj klasi morate koristiti operator razlučivosti opsega (tj. :: num).
Primjer
#include using namespace std int num = 30 // Inicijalizacija globalne varijable num int main () {int num = 10 // Inicijalizacija lokalne varijable num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 }
Izlaz
Nastavljamo s ovim člankom o Scope Resolution Operatoru C ++
Definiranje funkcije izvan razreda
Ako deklarirate funkciju u klasi, a zatim je kasnije želite definirati izvan klase, to možete učiniti pomoću operatora razlučivanja opsega. U donjem primjeru deklariramo funkciju Speed u Class Bikeu. Kasnije definiramo funkciju u glavnoj klasi pomoću operatora razlučivosti opsega.
Primjer
#include using namespace std class Bike {public: // Just the Function Declaration void Speed ()} // Definiranje funkcije Speed izvan klase Bike using :: void Bike :: Speed () {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 }
Izlaz
Nastavljamo s ovim člankom o Scope Resolution Operatoru C ++
Pristup statičkoj klasi varijable
Možete pristupiti statičkoj varijabli klase pomoću naziva klase i operatora razlučivosti opsega (tj. Ime_klase :: static_variable). Možete vidjeti u primjeru ispod, mi deklariramo statičku varijablu u klasi. Mi definiramo varijablu izvan klase pomoću operatora razlučivanja opsega. Tada mu pristupamo pomoću operatora naziva klase i razlučivosti opsega.
Primjer
#include using namespace std class Pokušajte {static int num1 public: static int num2 // Lokalni parametar skriva člana klase // Članu klase može se pristupiti pomoću :: void function (int num1) {// num1 statičkoj varijabli može se pristupiti pomoću :: // usprkos lokalnoj varijabli 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 }
Izlaz
Nastavljamo s ovim člankom o Scope Resolution Operatoru C ++
Upućivanje na razred unutar drugog razreda
U obje klase možete stvoriti ugniježđenu klasu s istim imenima varijabli. Obje varijable možete pristupiti pomoću operatora razlučivosti opsega. Za varijablu interne klase trebate koristiti Vanjska klasa :: Unutarnja klasa :: varijabla.
Primjer
#include using space names 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}
Nastavljamo s ovim člankom o Scope Resolution Operatoru C ++
U slučaju višestrukog nasljeđivanja
Ako imate dvije roditeljske klase s istim imenima varijabli i nasljeđujete obje u podređenoj klasi, tada možete koristiti operator razlučivanja opsega s imenom klase za pristup pojedinačnim varijablama.
U donjem primjeru stvaramo dvije roditeljske klase Parent1 i Parent2, a obje imaju varijablu num. Kada nasljeđujemo obojicu u klasi Child, možemo pristupiti obje num varijable pomoću naziva klase i operatora razlučivosti opsega.
Primjer
#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 }
Izlaz
Nastavljamo s ovim člankom o Scope Resolution Operatoru C ++
Prostor imena
Pretpostavimo da imamo dva imenska prostora i oba sadrže klasu s istim imenom. Da bismo izbjegli bilo kakav sukob, možemo koristiti naziv prostora imena s operatorom za razlučivanje opsega. U primjeru u nastavku koji koristimo std :: cout .
Primjer
#include int main () {std :: cout<< 'Hello' << std::endl }
Izlaz
Sada biste nakon prolaska kroz gornje programe razumjeli sve o operateru razlučivanja opsega na C ++. Nadam se da je ovaj blog informativan i da vam dodaje dodanu vrijednost.
Sada biste nakon izvršavanja gornjeg programa razumjeli Scope Resolution Operator u C ++. Tako smo došli do kraja ovog članka o 'Quicksort u Javi'. Ako želite saznati više, pogledajte Java Training tvrtke Edureka, pouzdane tvrtke za internetsko učenje. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA osmišljen je kako bi vas osposobio za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate & Spring.
Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.