有没有办法给一个复杂的静态常整形数组成员赋值?

竞天问 2011-02-10 06:46:22
//比如我想实现类似下面这样的效果
typedef int Link[3][3];
namespace My
{
class Chessboard
{
static const Link Links[5][5]=
{
{{{0,0,0},{0,1,1},{0,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,1},{1,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,0},{1,1,0}}},
{{{0,0,0},{0,1,1},{0,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,1},{1,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,0},{1,1,0}}},
{{{0,0,0},{0,1,1},{0,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,1},{1,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,0},{1,1,0}}},
{{{0,0,0},{0,1,1},{0,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,1},{1,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,0},{1,1,0}}},
{{{0,0,0},{0,1,1},{0,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,1},{1,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,0},{1,1,0}}},
};
};
};

...全文
69 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzhixi 2011-02-10
  • 打赏
  • 举报
回复
好了,有了6L的答案可以结贴了
we_sky2008 2011-02-10
  • 打赏
  • 举报
回复
类体中不能对static const数组成员初始化,C++ Primer上面提过,因为数组不是有序类型
可以这样:

#include <iostream>

using namespace std;

typedef int Link[3][3];

namespace My
{
class Chessboard
{
static const Link Links[5][5];
};
};

const Link My::Chessboard::Links[5][5] =
{
{{{0,0,0},{0,1,1},{0,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,1},{1,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,0},{1,1,0}}},
{{{0,0,0},{0,1,1},{0,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,1},{1,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,0},{1,1,0}}},
{{{0,0,0},{0,1,1},{0,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,1},{1,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,0},{1,1,0}}},
{{{0,0,0},{0,1,1},{0,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,1},{1,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,0},{1,1,0}}},
{{{0,0,0},{0,1,1},{0,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,1},{1,1,1}},{{0,0,0},{1,1,1},{0,1,0}},{{0,0,0},{1,1,0},{1,1,0}}},
};

int main()
{


system("pause");
return 0;
}

Lactoferrin 2011-02-10
  • 打赏
  • 举报
回复
别人是4维的
qq120848369 2011-02-10
  • 打赏
  • 举报
回复
明明是2维,你怎么弄出3维了?
qq120848369 2011-02-10
  • 打赏
  • 举报
回复
明明是2维,你怎么弄出3维了?
qq120848369 2011-02-10
  • 打赏
  • 举报
回复
你这不是赋完了么。
Lactoferrin 2011-02-10
  • 打赏
  • 举报
回复
太复杂的不行
error C2078: too many initializers

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧