gpt4 book ai didi

c++ - C++ 头文件中的 const 数组声明

转载 作者:IT老高 更新时间:2023-10-28 23:03:55 25 4
gpt4 key购买 nike

我有一个名为 AppSettings 的类,其中有一个包含一系列音符频率的数组。下面的代码有几个错误,我不确定是什么问题。

错误信息是:

  • 'const float [36] 类型的静态数据成员必须在行外初始化
  • 在“{”标记之前不允许使用大括号括起来的初始化器
  • 非整数类型的静态数据成员的类内初始化无效

还有代码:

class AppSettings{

public:
static const float noteFrequency[36] = {
// C C# D D# E F F# G G# A A# B
130.81, 138.59, 146.83, 155.56, 164.81, 174.61, 185.00, 196.00, 207.65, 220.00, 223.08, 246.94,
261.63, 277.18, 293.66, 311.13, 329.63, 349.23, 369.99, 392.00, 415.30, 440.00, 466.16, 493.88,
523.25, 554.37, 587.33, 622.25, 659.25, 698.46, 739.99, 783.99, 830.61, 880.00, 932.33, 987.77
};

};

顾名思义,这只是一个头文件,其中包含我在整个应用程序中需要的一些设置和值。

最佳答案

您不能在类中定义 static 类成员的值。你需要在类里面有这样的一行:

class AppSettings
{
public:
static const float noteFrequency[];

然后在类的实现文件中(可能是AppSettings.cpp):

const float AppSettings::noteFrequency[] = { /* ... */ };

此外,您不需要在此处的 [] 中指定数字,因为 C++ 足够聪明,可以计算初始化值中的元素数量。

关于c++ - C++ 头文件中的 const 数组声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11693690/

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