Как най-добре да се използва операторът за разделителна способност в C ++?



Тази статия ще ви запознае с оператора за разделителна способност в C ++ и ще го последва програмна демонстрация за подробно разбиране.

Както подсказва името, операторът за разделителна способност на обхвата се използва за получаване на скритите имена поради променливите обхвати, така че все още да можете да ги използвате. В тази статия ще разберем как да използваме оператора за резолюция на обхвата в C ++ и какви са различните му цели от a .

В C ++ операторът за разделителна способност е ::. Операторът за разделителна способност в C ++ може да се използва за:





Сега нека разберем всяка от целите една по една с помощта на примери.

Достъп до глобална променлива, когато има локална променлива с същото име

Можете да използвате оператор за разделителна способност за достъп до глобалната променлива, ако имате локална променлива със същото име. В примера по-долу имаме две променливи, двете с име num с глобален и локален обхват. Така че, за да получите достъп до глобалната променлива num в основния клас, трябва да използвате оператор за разделителна способност (т.е. :: num).



Пример

#include using space names std int num = 30 // Инициализиране на глобална променлива num int main () {int num = 10 // Инициализиране на локалната променлива num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Изход

Продължавайки с тази статия за Scope Resolution Operator In C ++



Дефиниране на функция извън клас

Ако декларирате функция в клас и по-късно искате да я дефинирате извън класа, можете да направите това, като използвате оператор за разделителна способност. В примера по-долу декларираме функция Speed ​​в Class Bike. По-късно дефинираме функцията в основния клас, използвайки оператор за разделителна способност.

Пример

#include с използване на пространство от имена std class Bike {public: // Just the Function Declaration void Speed ​​()} // Определяне на функцията Speed ​​извън Bike class using :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Изход

Продължавайки с тази статия за Scope Resolution Operator In C ++

Достъп до статика на клас променливи

Можете да получите достъп до статичната променлива на класа, като използвате оператор за име на клас и разделителна способност (т.е. class_name :: static_variable). Можете да видите в примера по-долу, ние декларираме статична променлива в класа. Дефинираме променливата извън класа, използвайки оператора за разделителна способност. Тогава ние имаме достъп до него, използвайки име на клас и оператор за разрешаване на обхват.

Пример

#include using std class space space Опитайте {static int num1 public: static int num2 // Локален параметър скрива член на класа // Членът на класа може да бъде достъпен с помощта на :: void функция (int num1) {// статичната променлива num1 може да бъде достъпна чрез :: // въпреки локалната променлива 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 } 

Изход

Продължавайки с тази статия за Scope Resolution Operator In C ++

Позоваване на клас в друг клас

Можете да създадете вложен клас с еднакви имена на променливи и в двата класа. Можете да осъществите достъп до двете променливи, като използвате оператора за разделителна способност. За променливата на вътрешния клас трябва да използвате Outer_Class :: Inner_Class :: променлива.

как да приключите Java програма

Пример

#include използвайки пространство на имена std клас 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}

Продължавайки с тази статия за Scope Resolution Operator In C ++

В случай на множествено наследяване

Ако имате два родителски класа с еднакви имена на променливи и наследявате и двата в дъщерния клас, тогава можете да използвате оператор за разрешаване на обхват с името на класа за достъп до отделните променливи.

В примера по-долу създаваме два родителски класа Parent1 & Parent2 и двамата имат променлива num. Когато наследяваме и двете в клас Child, можем да осъществим достъп до двете променливи num, като използваме оператор за име на клас и разделителна способност.

Пример

#include използвайки пространство на имена std клас 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 } 

Изход

Продължавайки с тази статия за Scope Resolution Operator In C ++

Пространство от имена

Да предположим, че имаме две пространства от имена и двете съдържат клас с едно и също име. Така че, за да избегнем конфликт, можем да използваме име на пространство от имена с оператора за разрешаване на обхват. В примера по-долу, който използваме std :: cout .

Пример

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

Изход

След като преминете през горните програми, бихте разбрали всичко за оператора за резолюция на обхвата в C ++. Надявам се, че този блог е информативен и с добавена стойност за вас.

След изпълнението на горната програма бихте разбрали оператора за резолюция на обхвата в C ++. По този начин стигнахме до края на тази статия за „Quicksort в Java“. Ако искате да научите повече, разгледайте Java Training от Edureka, доверена компания за онлайн обучение. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен да ви обучи както за основните, така и за разширените Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог и ние ще се свържем с вас възможно най-скоро.