gpt4 book ai didi

C++ 初始化静态常量结构变量

转载 作者:可可西里 更新时间:2023-11-01 16:27:44 25 4
gpt4 key购买 nike

我正在尝试向我的类添加一个静态常量变量,它是一个结构的实例。因为它是静态的,所以我必须在类声明中对其进行初始化。尝试这段代码

class Game {
public:
static const struct timespec UPDATE_TIMEOUT = { 10 , 10 };

...
};

出现此错误:

error: a brace-enclosed initializer is not allowed here before '{' token

error: invalid in-class initialization of static data member of non-integral type 'const timespec'

如何初始化它?谢谢!

最佳答案

在源文件内的类外的单独定义中初始化它:

// Header file
class Game {
public:
// Declaration:
static const struct timespec UPDATE_TIMEOUT;
...
};

// Source file
const struct timespec Game::UPDATE_TIMEOUT = { 10 , 10 }; // Definition

如果您将定义包含在一个头文件中,并且该头文件包含在多个源文件中,您可能会收到有关多重定义符号的链接器错误。

关于C++ 初始化静态常量结构变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12079537/

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