我可以很容易地声明并在头文件中,像这样初始化一个恒定阵列成员:如何通过头文件中的函数初始化const int数组?
class MyClass {
public:
const int arr[4] = {1, 2, 3, 4};
}
但是,当该数据由功能定义,我不能在报头中初始化:
#include <cmath>
#define BASE 2
class MyClass {
public:
const int arr[4];
for (i=0;i<4;i++) {
arr[i] = pow(BASE, i);
}
}
当我尝试在.cpp文件的类构造函数中初始化数组时,出现明显的uninitialized member with 'const' type
错误,因为数组应该已经被初始化。
如何使用预处理宏和cmath函数在头文件中初始化const int
数组?
哪里的功能是什么? – juanchopanza
@juanchopanza这个例子中的函数是pow。 – uzumaki
如果预先知道这些值,则可以计算它们,并在代码中只写出结果。也许增加一些评论来解释价值。 – Dialecticus