Âmbito variável em C ++ Programming

Uma variável em C ++ deve ser atribuído um tipo de armazenamento, dependendo de onde e como ela está definida. As variáveis ​​definidas dentro de uma função como nLocalVariable não existem até que o controle passa através da declaração. Além, nLocalVariable só é definido dentro fn () - a variável deixa de existir quando sai do controle fn () função.

int nGlobalVariable-vazio fn () {int nLocalVariable-static int nStaticVariable = 1-nStaticVariable = 2-}

Por comparação, a variável nGlobalVariable é criado quando o programa começa a execução e existe enquanto o programa está em execução. Todas as funções têm acesso a nGlobalVariable o tempo todo.

nLocalVariable tem âmbito local, e nGlobalVariable tem escopo global. a palavra-chave estático pode ser usado para criar uma espécie de mishling - algo entre uma variável global e uma local. A variável estática nStaticVariable é criado quando a execução atinge a declaração a primeira vez que funcionar fn () é chamado.

Ao contrário nLocalVariable, Contudo, nStaticVariable não é destruída quando da execução do programa retorna a partir da função. Em vez disso, ele retém seu valor de uma chamada para a próxima.

Neste exemplo, nStaticVariable é inicializado para um tempo em que o primeiro fn () é chamado. A função muda o seu valor para 2. nStaticVariable retém o valor 2 em cada chamada subseqüente - não é reinicializado uma vez que foi criado. A parte de inicialização da declaração é ignorado cada vez subseqüente que fn () é chamado após o primeiro tempo.

No entanto, o âmbito de nStaticVariable ainda é local para a função. Código fora do fn () não têm acesso a nStaticVariable.

As variáveis ​​globais são úteis para a realização de valores que você deseja que todas as funções têm acesso. Variáveis ​​estáticas são mais úteis para contadores - por exemplo, se você quer saber quantas vezes uma função é chamada. No entanto, a maioria das variáveis ​​são de variedade local dos ol simples.

menu