发布网友 发布时间:2024-07-03 21:30
共1个回答
热心网友 时间:2024-07-04 19:34
下面的代码视图使用一个静态常量数组作为类成员,并希望利用C++11特性直接在定义中赋值:class A { const static char a[5] = {0}; }; // ... char tmp = A::a[2]; 然而直接这样做是错误的,为了通过编译器,必须将const替换为constexpr: class A { constexpr static char a[5] = {0}; }; // ... char tmp = A::a[2]; 迈进一大步。但是这样还不够,因为链接器仍旧无法正确链接,于是你还需要这样做:class A { constexpr static char a[5] = {0}; }; // ... constexpr char A::a[5]; // ... char tmp = A::a[2]; 现在才算大功告成。