C ++ primer 5 Ed Глобальные объекты - PullRequest
0 голосов
/ 16 октября 2019

В С ++, учебник 5 ред. Глава 12: Динамическая память. Говорят: «статические объекты выделяются до того, как они используются, и они уничтожаются по завершении программы».

Означает ли это, что глобальные объекты определены и инициализированы до того, как управление пройдет их объявление.

У меня есть этот пример:

constexpr double PI = 3.14;

double Perim(double rad) {
    std::cin.get(); // I want to block here waiting for user interaction
    return rad * 2 * PI;
}

constexpr double radius = 4.16;
double perim = Perim(radius); // Perim will blcok until user presses a key
int y;

Итак, выше y создается и инициализируется до того, как пользователь нажимает клавишу, или он ждет, пока управление не пройдет по своему определению?

1 Ответ

2 голосов
/ 16 октября 2019

Если ваш опубликованный код находится в глобальном namespace, тогда y будет выделен и установлен на 0 до запуска main. Однако его можно использовать только после строки, в которой он объявлен и определен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...