将非静态 const 数组声明为类成员
我们如何将非静态 const 数组声明为类的属性?
以下代码产生编译错误
“Test::x”:无法初始化成员
class Test
{
public:
const int x[10];
public:
Test()
{
}
};
How can we declare a non-static const array as an attribute to class?
Following code produces compilation error
'Test::x' : member could not be initialized
class Test
{
public:
const int x[10];
public:
Test()
{
}
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您应该阅读这个已经发布的问题。由于无法执行您想要的操作,因此解决方法是使用 std::vector。
You should read this already posted question. Since it is not possible to do what you want, the workaround is to use an std::vector.
您可以使用 tr1 中的
array
类。array
类可以简单地表示如下:You could use
array
class from tr1.array
class could be simplistically represented as follows:使用 boost::array (与 tr1 相同)它看起来像:
需要额外的代码静态成员,因为
{ { 1, 2, 3 ,5 } }
在初始化列表中无效。一些优点是 boost::array 定义了迭代器和标准容器方法,例如 size、begin 和 end。
Using boost::array (the same as tr1) it will looks like:
The extra code static member is needed because
{ { 1, 2, 3 ,5 } }
is invalid in initialization list.Some advantages is that boost::array have defined iterator and standard container methods like size, begin and end.