C++ 类中const数组如何初始化
(1)构造函数的初始化列表
const初始化的地方,不可以在构造函数体内赋值
(2)初始化列表中,初始化的写法跟普通数组一样,注意写法
# include <iostream>
using namespace std;
class ConstArray{
// const int scOrs[]{1, 2}; //error too many initializers for 'const int[0]'
const int sc[10]; //数组大小需要指定,否则会包跟上面一样的错误
int arr[10];
const int j;
public:
ConstArray(int cj = 0) : j(cj), arr{1, 2}, sc{10, 20} //必须要对 j、sc初始化, 无论有参还是无参构造
{
cout << "有参构造" << endl;
cout << arr[1] << endl;
cout << arr[9] << endl;
cout << sc[1] << endl;
cout << sc[9] << endl;
}
};
// const int ConstArray::scOrs[]{1, 2, 3}; //not a static member 不是静态,不能这样初始化
int main()
{
ConstArray ca(23); //使用时,才会出现错误
return 0;
}