gpt4 book ai didi

c++ - 初始化静态变量时出现语法错误

转载 作者:太空狗 更新时间:2023-10-29 20:16:48 25 4
gpt4 key购买 nike

定义了两个类..

    class Dictionary
{
public:
Dictionary();
Dictionary(int i);
// ...
};

    class Equation
{
static Dictionary operator_list(1);
// ...

};

但问题是,每当我编译它时,我都会收到一条奇怪的错误消息

error C2059: syntax error : 'constant'

但是当我在 operator_list 上使用默认构造函数时它编译得很好。

最佳答案

在 C++ 中,您不能将声明和初始化结合起来。当您不指定operator_list 的构造函数参数时,您不会调用它的默认构造函数:您只需声明它。您还需要在相应的 C++ 文件中对其进行初始化,如下所示:

方程.h

class Equation {
static Dictionary operator_list;
};

方程式.cpp:

Dictionary Equation::operator_list(1);

请注意 CPP 文件中没有 static:它不是设计使然。编译器已经从声明中知道 operator_list 是静态的。

编辑:您可以选择整型和枚举类型的静态常量成员:您可以像上面的示例一样在 CPP 文件中初始化它们,或者您可以在 header 中给它们赋值。您仍然需要在 C++ 文件中定义该成员,但您不能在定义时为其赋值。

关于c++ - 初始化静态变量时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461546/

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