Jak nejlépe využít operátora rozlišení oboru v C ++?



Tento článek vás seznámí s operátorem rozlišení oboru v C ++ a podrobným porozuměním naváže na programovou demonstraci.

Jak název napovídá, operátor rozlišení oboru se používá k získání skrytých jmen kvůli proměnným rozsahům, takže je můžete stále používat. V tomto článku pochopíme, jak používat operátor rozlišení oboru v C ++ a jaké jsou jeho odlišné účely od a .

V C ++ je operátor rozlišení oboru ::. Operátor rozlišení oboru v C ++ lze použít pro:





Nyní si pomocí příkladů vysvětlíme každý z účelů jeden po druhém.

Přístup ke globální proměnné, pokud existuje lokální proměnná s stejné jméno

Můžete použít operátor rozlišení oboru pro přístup k globální proměnné, pokud máte místní proměnnou se stejným názvem. V níže uvedeném příkladu máme dvě proměnné, obě s názvem num s globálním a lokálním rozsahem. Takže pro přístup k globální proměnné num v hlavní třídě musíte použít operátor rozlišení oboru (tj. :: num).



Příklad

#include using namespace std int num = 30 // Inicializace globální proměnné num int main () {int num = 10 // Inicializace lokální proměnné num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Výstup

Pokračujeme tímto článkem o operátorovi řešení rozsahu v C ++



Definování funkce mimo třídu

Pokud deklarujete funkci ve třídě a později ji chcete definovat mimo třídu, můžete to udělat pomocí operátoru rozlišení oboru. V níže uvedeném příkladu deklarujeme funkci Speed ​​in Class Bike. Později definujeme funkci v hlavní třídě pomocí operátoru rozlišení oboru.

Příklad

#include using namespace std class Bike {public: // Just the Function Declaration void Speed ​​()} // Definování funkce Speed ​​mimo třídu Bike pomocí :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Výstup

Pokračujeme tímto článkem o operátorovi řešení rozsahu v C ++

Přístup ke statice třídy proměnné

Ke statické proměnné třídy můžete přistupovat pomocí operátoru názvu třídy a rozlišení oboru (tj. Class_name :: static_variable). V následujícím příkladu vidíte, že ve třídě deklarujeme statickou proměnnou. Proměnnou mimo třídu definujeme pomocí operátoru rozlišení oboru. Pak k němu přistupujeme pomocí operátoru názvu třídy a rozlišení oboru.

Příklad

#include using namespace std class Try {static int num1 public: static int num2 // Local parameter hides member class // Class member can be accessed using using :: void function (int num1) {// num1 static variable can be accessed using :: // navzdory lokální proměnné 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ýstup

Pokračujeme tímto článkem o operátorovi řešení rozsahu v C ++

Odkaz na třídu uvnitř jiné třídy

V obou třídách můžete vytvořit vnořenou třídu se stejnými názvy proměnných. K oběma proměnným můžete přistupovat pomocí operátoru rozlišení oboru. Pro proměnnou vnitřní třídy musíte použít Outer_Class :: Inner_Class :: variable.

Pří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ánkem o operátorovi řešení rozsahu v C ++

V případě vícenásobného dědictví

Pokud máte dvě nadřazené třídy se stejnými názvy proměnných a obě zdědíte v podřízené třídě, můžete k přístupu k jednotlivým proměnným použít operátor rozlišení oboru s názvem třídy.

V níže uvedeném příkladu vytváříme dvě nadřazené třídy Parent1 a Parent2 a obě mají proměnnou num. Když zdědíme oba ve třídě Child, můžeme přistupovat k oběma proměnným num pomocí operátoru názvu třídy a rozlišení oboru.

Pří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ýstup

Pokračujeme tímto článkem o operátorovi řešení rozsahu v C ++

Jmenný prostor

Předpokládejme, že máme dva jmenné prostory a oba obsahují třídu se stejným názvem. Abychom se vyhnuli jakémukoli konfliktu, můžeme s operátorem rozlišení oboru použít název oboru názvů. V níže uvedeném příkladu používáme std :: cout .

Příklad

co je postgraduální certifikát
#include int main () {std :: cout<< 'Hello' << std::endl } 

Výstup

Nyní po absolvování výše uvedených programů byste pochopili vše o operátoru rozlišení oboru v C ++. Doufám, že tento blog bude informativní a bude pro vás přidanou hodnotou.

Nyní po provedení výše uvedeného programu byste pochopili operátora Scope Resolution v C ++. Tak jsme dospěli ke konci tohoto článku o „Quicksort v Javě“. Pokud se chcete dozvědět více, podívejte se na Java Training by Edureka, důvěryhodná online vzdělávací společnost. Školicí a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java spolu s různými rámci Java, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.