C ++入门5 Ed全局对象

问题描述 投票:0回答:1

在C ++入门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是在用户按下某个键之前创建或初始化的,还是等到控件通过其定义之前通过?

c++ global-variables
1个回答
2
投票

如果您发布的代码在全局namespace中,则将在运行y之前分配0并将其设置为main。但是,只能在声明和定义该行之后使用它。

© www.soinside.com 2019 - 2024. All rights reserved.