今天编程时想在类中声明一个常量数组,发现无法初始化,后来在网上搜索,证明这是一个无法解决的问题。
因为根据C++语法,常量声明必须要在构造函数后用参数方式初始化,而x({1.0,2.0})又不符合语法。
只能声明成static类型,然后在源文件里定义。
// a.h
class A
{
private:
static const int xx[10];
}
// a.cpp
const A::xx[10] = {1,2,3,4,5,6,7,8,9,0};
今天编程时想在类中声明一个常量数组,发现无法初始化,后来在网上搜索,证明这是一个无法解决的问题。
因为根据C++语法,常量声明必须要在构造函数后用参数方式初始化,而x({1.0,2.0})又不符合语法。
只能声明成static类型,然后在源文件里定义。
// a.h
class A
{
private:
static const int xx[10];
}
// a.cpp
const A::xx[10] = {1,2,3,4,5,6,7,8,9,0};