Както подсказва името, операторът за разделителна способност на обхвата се използва за получаване на скритите имена поради променливите обхвати, така че все още да можете да ги използвате. В тази статия ще разберем как да използваме оператора за резолюция на обхвата в 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.
Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог и ние ще се свържем с вас възможно най-скоро.