将系数存储在头文件中的数组中("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
我想创建一个 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