gpt4 book ai didi

c++ - static const 成员变量相互依赖的初始化

转载 作者:行者123 更新时间:2023-11-30 01:54:26 24 4
gpt4 key购买 nike

在这里初始化 B 和 C 时,假设 A 被初始化为 1 是否安全?

struct Test {
static const int A = 1;
static const int B = A + 1;
static const int C = B + 1;
};

int main() {
printf("%i %i %i\n", Test::A, Test::B, Test::C); ==> 1 2 3
}

对于非整数静态成员呢

struct Test2 {
constexpr static const Test A = Test();
constexpr static const Test B = A;
constexpr static const Test C = B;
};

clang -Wall 不发出警告。

最佳答案

它们将在给定的翻译单元中按照定义的顺序进行初始化,并在任何其他对象或变量之前进行初始化。

关于c++ - static const 成员变量相互依赖的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com