将系数存储在头文件中的数组中("does not name a type" 错误)

Store coefficients in an array in header file ("does not name a type" error)

我想创建一个 class 来解决数值分析问题,我必须在某处存储一个双精度数组,我将需要多次使用。所以我刚刚创建了一个头文件来保存这些常量

#ifndef COEFFS_H_
#define COEFFS_H_

#include <iostream>
#include <complex>

using namespace std;    

const int p = 8;

double alpha[p];
alpha[0] = 1.83;
alpha[1] = -7.15;
alpha[2] =  +9.43;
alpha[3] = -3.76;
alpha[4] = -2.34;
alpha[5] = +4.69;
alpha[6] = -2.78;
alpha[7] = +4.80;

#endif /* COEFFS_H_ */

在主文件中,我需要在 for 循环中使用这些值:我刚刚做了 #include coeffs.h ,但是一旦我编译了 main,它就给我错误

‘alpha’ does not name a type

我是初学者,所以我几乎在此处和网络上的所有地方都进行了查找。我发现其他人有类似的问题,但似乎总是太复杂了。有没有非常简单的方法来解决这个问题?

两个错误,第一个正确的语法是这样

double alpha[p] = { 1.83, -7.15, ... };

您不能像以前那样在函数外部编写可执行代码。

其次,即使通过在头文件中定义数组来使用这种正确的语法,您仍然 运行 存在多个定义错误的风险。正确的方法是在头文件中声明数组,在实现文件

定义
// header file
extern double alpha[]; // declaration

// implementation file
#include "header file.h"

double alpha[p] = { 1.83, -7.15, ... }; // definition