Nota: O sistema operacional usado neste guia é o Ubuntu 20.04. No entanto, o mesmo guia também pode ser implementado em outros sistemas operacionais.
Exemplo 01:
Comece com o primeiro exemplo para ver como o erro “a função não foi declarada no escopo” ocorre. Vamos criar um novo arquivo C ++ com a consulta "Touch" no shell, como mostrado na figura abaixo.
Teste de Touch.cc
Depois de criar um arquivo, você precisa abri -lo em algum editor para adicionar código C ++ a ele. Então, já instalamos o editor do GNU Nano para esse fim. Portanto, estamos utilizando o editor Nano para abrir e escrever código nele conforme a imagem Snap.
$ nano teste.cc
Nesse arquivo, incluímos um cabeçalho de fluxo de entrada e saída no início. O espaço para nome padrão deve ser usado no código C ++. Porque sem ele, nosso código não funcionará. O método principal foi inicializado primeiro para iniciar a execução. Aponta que o controle foi dado ao método principal. O método principal usa a chamada de função para executar o método definido pelo usuário "Display ()". Portanto, o método Display () que foi definido após o método principal executar e produzir algumas declarações de texto.
No caso da linguagem C ++, temos que instalar o compilador G ++. Então, já o instalamos em nosso sistema. O compilador G ++ foi utilizado no comando para compilar o código. A compilação gera uma exceção de que o método "Display ()" não foi definido no escopo. Essa é a razão pela qual nosso código não funcionará depois de executá -lo também.
Teste $ G ++.cc
Temos que atualizar um código para fazê -lo funcionar e evitar mais erros de escopo. O código estava certo, exceto por uma coisa. Para resolver esse erro, um primeiro método útil seria declarar o protótipo de função antes do método principal (). Então, usamos o protótipo de função antes do método principal no código atualizado.
Quando compilamos o código, ele não joga exceções e funciona corretamente.
Teste $ G ++.cc
$ . /a.fora
Outra maneira de resolver esse erro de escopo é definir o método definido pelo usuário antes da função principal () se você não quiser usar seu protótipo de função. Portanto, de acordo com o código abaixo, trocamos as posições de um método main () e Display ().
Quando compilamos o código atualizado, ele funciona bem. Portanto, o código do arquivo é executado com sucesso e mostra a saída na tela do terminal.
Teste $ G ++.cc
$ . /a.fora
Exemplo 02:
Vamos ver outro exemplo para obter o erro de escopo da função no shell e resolvê -lo. Então, atualizamos o código de um arquivo “Teste.CC ”. Após o espaço para nome e cabeçalho, definimos 2 funções, Show1 () e Show2 () no Código. O método Show1 () chamou o método show2 () dentro dele por uma chamada de função.
Ao compilar o arquivo, recebemos o erro mostrando que o método show2 () não é declarado no escopo. Como a função show2 () foi declarada no último, devemos declarar seu protótipo antes do método Show1 ().
Teste $ G ++.cc
Vamos atualizar o código para remover este erro. Então, abrimos o arquivo mais uma vez e adicionamos a declaração de função do show2 () após o espaço para nome e antes de todos os métodos.
Depois de compilar o código, recebemos um novo erro, embora o erro anterior tenha sido resolvido. O erro diz que o código tem uma referência indefinida. Isso significa que nosso código não funcionará sem o método principal (). Além disso, não chamamos o método show1 () em nenhum lugar.
Teste $ G ++.cc
Assim, abrimos o arquivo mais uma vez para corrigir este erro. Definimos o método principal na última das duas funções. O método principal tem chamado o método show1 (). Como o método Show1 () foi definido no início, não há necessidade de declaração de protótipo de função. O método show1 () está chamando o método show2 (). Dessa forma, a execução foi concluída.
Vamos apenas compilar e executar o código novamente. Você pode ver que não encontramos erros e funciona bem.
Teste $ G ++.cc
$ . /a.fora
Conclusão:
Neste guia, usamos exemplos simples para fazer situações para obter o erro: “Função não declarada no escopo”. Além disso, deliberamos as técnicas para resolver esses problemas com diferentes métodos. Esperamos que você goste deste artigo e ache útil.