我需要在类中使用一长串的静态consts。因此,我将它们放入一个结构中并定义我的类来继承该结构的成员变量,而不是使类定义混乱:
/*The following code is all in the same header file in the order shown*/
struct constants{
static const double a1, a2, a3, .... ;
};
const double constants::a1 = 142314321.6536;
const double constants::a2 = 652453254.1343;
const double constants::a3 = 652134324.1234;
...(etc).
class C : constants {
//class definition...
void myFunction();
};
void C::myFunction() {
double a = a1*a2 ...;
...
}
我的代码编译时没有错误,运行没有任何错误。但是,我得到了无意义的结果,并发现当我在调试器中运行我的代码时,我的所有静态const值都为零。
正在发生的事情是将这些变量初始化为0但是也没有按照定义变量的方式抛出错误?
编辑:我应该提一下,我防止多个头文件声明的方法是在每个头文件的顶部使用#pragma一次。