Как лучше всего использовать оператор разрешения области видимости в C ++?



Эта статья познакомит вас с оператором разрешения области видимости в C ++ и последует за его программной демонстрацией для подробного понимания.

Как следует из названия, оператор разрешения области используется для получения скрытых имен из-за областей действия переменных, чтобы их можно было использовать. В этой статье мы поймем, как использовать оператор разрешения области видимости в C ++ и каковы его цели, отличные от .

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





Теперь давайте разберемся с каждой целью по порядку с помощью примеров.

Доступ к глобальной переменной при наличии локальной переменной с то же имя

Вы можете использовать оператор разрешения области видимости для доступа к глобальной переменной, если у вас есть локальная переменная с тем же именем. В приведенном ниже примере у нас есть две переменные с именем num с глобальной и локальной областью видимости. Итак, чтобы получить доступ к глобальной переменной num в основном классе, вам необходимо использовать оператор разрешения области видимости (т.е. :: num).



пример

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

Вывод

Продолжаем читать статью об операторе разрешения области видимости в C ++



Определение функции вне класса

Если вы объявляете функцию в классе, а затем хотите определить ее вне класса, вы можете сделать это с помощью оператора разрешения области видимости. В приведенном ниже примере мы объявляем функцию Speed ​​в классе Bike. Позже мы определяем функцию в основном классе, используя оператор разрешения области видимости.

пример массива объектов java

пример

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

Вывод

Продолжаем читать статью об операторе разрешения области видимости в C ++

Доступ к статике класса переменные

Вы можете получить доступ к статической переменной класса с помощью оператора разрешения имени класса и области видимости (т.е. class_name :: static_variable). В приведенном ниже примере вы можете видеть, что мы объявляем статическую переменную в классе. Мы определяем переменную вне класса, используя оператор разрешения области видимости. Затем мы обращаемся к нему, используя имя класса и оператор разрешения области видимости.

пример

#include с использованием пространства имен std class Try {static int num1 public: static int num2 // Локальный параметр скрывает член класса // Член класса может быть доступен с помощью :: void function (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 } 

Вывод

Продолжаем читать статью об операторе разрешения области видимости в C ++

Обращение к классу внутри другого класса

Вы можете создать вложенный класс с одинаковыми именами переменных в обоих классах. Вы можете получить доступ к обеим переменным, используя оператор разрешения области видимости. Для переменной внутреннего класса вам нужно использовать Внешний_Класс :: Внутренний_Класс :: переменная.

пример

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

Продолжаем читать статью об операторе разрешения области видимости в C ++

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

Если у вас есть два родительских класса с одинаковыми именами переменных и вы наследуете их оба в дочернем классе, вы можете использовать оператор разрешения области видимости с именем класса для доступа к отдельным переменным.

В приведенном ниже примере мы создаем два родительских класса Parent1 и Parent2, и оба они имеют номер переменной. Когда мы наследуем их обоих в классе Child, мы можем получить доступ к обеим переменным num, используя имя класса и оператор разрешения области.

пример

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

Вывод

Продолжаем читать статью об операторе разрешения области видимости в C ++

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

Предположим, у нас есть два пространства имен, и оба содержат класс с тем же именем. Итак, чтобы избежать конфликта, мы можем использовать имя пространства имен с оператором разрешения области видимости. В приведенном ниже примере мы используем std :: cout .

пример

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

Вывод

Теперь, пройдя через вышеуказанные программы, вы бы поняли все об операторе разрешения области видимости в C ++. Я надеюсь, что этот блог будет информативным и принесет вам дополнительную пользу.

Теперь, после выполнения вышеуказанной программы, вы бы поняли, что такое оператор разрешения области видимости в C ++. На этом мы подошли к концу статьи о «Быстрой сортировке в Java». Если вы хотите узнать больше, посетите обучение Java от Edureka, надежной компании, занимающейся онлайн-обучением. Курс обучения и сертификации по Java J2EE и SOA от Edureka разработан, чтобы научить вас базовым и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога, и мы свяжемся с вами как можно скорее.