Изучаем С++ создавая игры в ue4 Уилльям Шериф Изучайте программирование С++ с интересным применением реально мира, что позволит вам создавать ваши собственные игры!



Pdf көрінісі
бет103/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   99   100   101   102   103   104   105   106   ...   252
 
Статические локальные переменные 
Локальные  переменные  static  прямо  как
 
глобальные  переменные,  только  у  них 
локальная область действия, как показано в следующем коде: 
void testFunc() 

static int runCount = 0; // 
это запускается только ОДИН РАЗ, даже при 
// 
последующем вызове testFunc()! 
cout << "
Запустили эту функцию " << ++runCount << " раз" << endl; 
} // runCount 
больше не области действия, но не прекращает быть активной здесь 
int main() 

testFunc(); // 
говорится 1 раз 
testFunc(); // 
говорится 2 раза! 

При  использовании  ключевого  слова 
static
  в 
testFunc()
,  переменная 
runCount 
запоминает её значение между вызовами 
testFunc()
.
 
Так что вывод двух отдельных 
запусков 
testFunc()
 будет: 
Запустили эту функцию 1 раз 
Запустили эту функцию 2 раза 
Это  потому  что  статические  переменные  создаются  и  обретают  начальное 
значение только раз (первый раз, когда функция объявлена и запускается), и после 
этого  статические  переменные  сохраняют  своё  старое  значение.  Скажем,  мы 
объявляем 
runCount
 как регулярную, локальную, нестатическую переменную: 
int runCount = 0; // 
если объявить таким образом, runCount будет локальной 
Затем, вывод будет выглядеть так: 
Запустили эту функцию 1 раз 
Запустили эту функцию 1 раз 
Здесь мы видим 
testFunc 
говорящую: “
Запустили эту  функцию 1 раз
”, оба раза. Как у 
локальной  переменной,  значение  runCount  не  сохраняется  между  вызовами 
функции. 
Вы не должны злоупотреблять статическими локальными переменными. По факту, 
вы должны применять статические локальные переменные лишь, когда это совсем 
необходимо. 


Достарыңызбен бөлісу:
1   ...   99   100   101   102   103   104   105   106   ...   252




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет