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:
- Acessando uma variável global quando houver uma variável local com o mesmo nome
- Definir uma função fora de uma classe
- Acessando as variáveis estáticas de uma classe
- Referindo-se a uma classe dentro de outra classe
- Em caso de herança múltipla
- Namespace
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.