Como utilizar melhor o operador de resolução de escopo em C ++?



Este artigo irá apresentá-lo ao operador de resolução de escopo em C ++ e acompanhar a demonstração programática para um entendimento detalhado.

Como o nome sugere, o operador de resolução de escopo é usado para obter os nomes ocultos devido aos escopos de variáveis ​​para que você ainda possa usá-los. Neste artigo, entenderemos como usar o operador de resolução de escopo em C ++ e quais são seus objetivos diferentes de um .

Em C ++, o operador de resolução de escopo é ::. O operador de resolução de escopo em C ++ pode ser usado para:





Agora vamos entender cada um dos objetivos, um por um, com a ajuda de exemplos.

Acessando uma variável global quando há uma variável local com mesmo nome

Você pode usar o operador de resolução de escopo para acessar a variável global se tiver uma variável local com o mesmo nome. No exemplo a seguir, temos duas variáveis ​​de nome num com escopo global e local. Portanto, para acessar a variável global num na classe principal, você precisa usar o operador de resolução de escopo (ou seja, :: num).



Exemplo

#include using namespace std int num = 30 // Inicializando uma variável global num int main () {int num = 10 // Inicializando a variável local num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Resultado

Continuando com este artigo sobre o operador de resolução de escopo em C ++



Definindo uma função fora de uma classe

Se você está declarando uma função em uma classe e posteriormente deseja defini-la fora da classe, você pode fazer isso usando o operador de resolução de escopo. No exemplo abaixo, estamos declarando uma função Speed ​​in Class Bike. Posteriormente, estamos definindo a função na classe principal usando o operador de resolução de escopo.

Exemplo

o que são dados combinados no tableau
#include using namespace std class Bike {public: // Apenas a declaração da função void Speed ​​()} // Definindo a função Speed ​​fora da classe Bike using :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Resultado

Continuando com este artigo sobre o operador de resolução de escopo em C ++

Acessando o estático de uma classe variáveis

Você pode acessar a variável estática da classe usando o nome da classe e o operador de resolução de escopo (ou seja, class_name :: static_variable). Você pode ver no exemplo abaixo, estamos declarando uma variável estática na classe. Estamos definindo a variável fora da classe usando o operador de resolução de escopo. Em seguida, estamos acessando-o usando nome de classe e operador de resolução de escopo.

Exemplo

#include usando namespace classe std Try {static int num1 public: static int num2 // O parâmetro local oculta o membro da classe // O membro da classe pode ser acessado usando :: void function (int num1) {// num1 variável estática pode ser acessada usando :: // apesar da variável local 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 } 

Resultado

Continuando com este artigo sobre o operador de resolução de escopo em C ++

Referindo-se a uma classe dentro de outra classe

Você pode criar classes aninhadas com os mesmos nomes de variáveis ​​em ambas as classes. Você pode acessar ambas as variáveis ​​usando o operador de resolução de escopo. Para a variável de classe interna, você precisa usar Outer_Class :: Inner_Class :: variable.

Exemplo

#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}

Continuando com este artigo sobre o operador de resolução de escopo em C ++

Em caso de herança múltipla

Se você tiver duas classes pai com os mesmos nomes de variáveis ​​e estiver herdando ambas na classe filha, poderá usar o operador de resolução de escopo com o nome da classe para acessar as variáveis ​​individuais.

No exemplo a seguir, estamos criando duas classes pai Pai1 e Pai2, e ambos têm a variável num. Quando estamos herdando ambos na classe Child, podemos acessar as variáveis ​​num usando o nome da classe e o operador de resolução de escopo.

Exemplo

#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 } 

Resultado

Continuando com este artigo sobre o operador de resolução de escopo em C ++

Namespace

Suponha que temos dois namespaces e ambos contêm uma classe com o mesmo nome. Portanto, para evitar qualquer conflito, podemos usar o nome do namespace com o operador de resolução de escopo. No exemplo abaixo, estamos usando std :: cout .

Exemplo

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

Resultado

Agora, depois de passar pelos programas acima, você terá entendido tudo sobre o operador de resolução de escopo em C ++. Espero que este blog seja informativo e agregue valor para você.

Agora, depois de executar o programa acima, você entenderá o operador de resolução de escopo em C ++. Assim, chegamos ao fim deste artigo sobre ‘Quicksort em Java’. Se você deseja aprender mais, confira o Treinamento em Java da Edureka, uma empresa confiável de aprendizado online. O curso de certificação e treinamento Java J2EE e SOA da Edureka foi projetado para treiná-lo tanto para os conceitos básicos e avançados do Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog e entraremos em contato com você o mais breve possível.