Язык программирования C++ для профессионалов

d51f8a0c

Время жизни объектов


Если только программист не вмешается явно, объект будет создан при появлении его определения и уничтожен, когда исчезнет из области видимости. Объекты с глобальными именами создаются, инициализируются (причем только один раз) и существуют до конца программы. Если локальные объекты описаны со служебным словом static, то они также существуют до конца программы. Инициализация их происходит, когда в первый раз управление "проходит через" описание этих объектов, например:

int a = 1;

void f() { int b = 1; // инициализируется при каждом вызове f() static int c = a; // инициализируется только один раз cout << " a = " << a++ << " b = " << b++ << " c = " << c++ << '\n'; }

int main() { while (a < 4) f(); }

Здесь программа выдаст такой результат:

a = 1 b = 1 c = 1 a = 2 b = 1 c = 2 a = 3 b = 1 c = 3

Из примеров этой лекции для краткости изложения исключена макрокоманда #include <iostream>. Она нужна лишь в тех из них, которые выдают результат.

Операция "++" является инкрементом, т. е. a++ означает: добавить 1 к переменной a.

Глобальная переменная или локальная переменная static, которая не была явно инициализирована, инициализируется неявно нулевым значением. Используя операции new и delete, программист может создавать объекты, временем жизни которых он управляет сам.

on_load_lecture()

Дальше »



  Если Вы заметили ошибку - сообщите нам.  
Страницы:

1

|

2

|

3

|

4

|

5

|

6

|

7

|

8

|

9

|

вопросы | »

|

учебники

|

для печати и PDA

Курсы | Учебные программы | Учебники | Новости | Форум | Помощь



Телефон: +7 (495) 253-9312, 253-9313, факс: +7 (495) 253-9310, email: info@intuit.ru

© 2003-2007, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование



Содержание раздела