消息关闭
    暂无新消息!
想在类的构造函数里,对一个二维数组进行初始化(该二维数组已在定义类时声明),不管是用方法一还是方法二,都会出现提示错误error C2143: syntax error : missing ';' before '{',搞不懂是什么原因?语法好像也没错啊! 求C大神指点

        //方法一
zifu={ {1, 1, 1, 1, 1, 0, 0, 0};{0, 1, 1, 0, 1, 1, 0, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 1, 1, 0, 0};{1, 1, 1, 1, 1, 0, 0, 0}};

        //方法二
zifu[0]={1, 1, 1, 1, 1, 0, 0, 0};
zifu[1]={0, 1, 1, 0, 1, 1, 0, 0};
zifu[2]={0, 1, 1, 0, 0, 1, 1, 0};
zifu[3]={0, 1, 1, 0, 0, 1, 1, 0};
zifu[4]={0, 1, 1, 0, 0, 1, 1, 0};
zifu[5]={0, 1, 1, 0, 0, 1, 1, 0};
zifu[6]={0, 1, 1, 0, 1, 1, 0, 0};
zifu[7]={1, 1, 1, 1, 1, 0, 0, 0};

13个回答

︿ 3
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
︿ 2
多贴点代码。
方法1每个元素中间的分号至少也应该改为,
参考:C++11的统一初始化
︿ 1
大概是两种方式,一,定义的时候初始化,参考上楼。第二,先定义,然后利用循环初始化;还没见过你这么写的……
︿ 1
char zifu[8][8]={ 
{1, 1, 1, 1, 1, 0, 0,1},
{0, 1, 1, 0, 1, 1, 0,1},
{0, 1, 1, 0, 0, 1, 1,1},
{0, 1, 1, 0, 0, 1, 1,1},
{0, 1, 1, 0, 0, 1, 1,1},
{0, 1, 1, 0, 0, 1, 1,1},
{0, 1, 1, 0, 1, 1, 0,1},
{1, 1, 1, 1, 1, 0, 0,1}
};

︿ 1
难道初始化应该是:
int zifu={ {1, 1, 1, 1, 1, 0, 0, 0};{0, 1, 1, 0, 1, 1, 0, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 1, 1, 0, 0};{1, 1, 1, 1, 1, 0, 0, 0}};
赋值时是:
zifu={ {1, 1, 1, 1, 1, 0, 0, 0};{0, 1, 1, 0, 1, 1, 0, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 1, 1, 0, 0};{1, 1, 1, 1, 1, 0, 0, 0}};
是这样的吗?
(去年的问题,其实有点记不清了;现在又有了新的解决思路)
︿ 1
“变量赋值”和“变量初始化”不是一回事!
“变量赋值”发生在运行期,其写法遵循赋值语法规定。
“变量初始化”发生在编译期或运行期,其写法遵循初始化列表语法规定。
︿ 0
头文件代码如是:
class CDrawDianZhenView : public CView
{
protected: // create from serialization only
CDrawDianZhenView();
DECLARE_DYNCREATE(CDrawDianZhenView)

// Attributes
public:
CDrawDianZhenDoc* GetDocument();
    int zifu[8][8];  //定义了一个点阵数组,进行图形演示
// Operations

Cpp代码如是:
CDrawDianZhenView::CDrawDianZhenView()
{
// TODO: add construction code here
//zifu={ {1, 1, 1, 1, 1, 0, 0, 0};{0, 1, 1, 0, 1, 1, 0, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 0, 1, 1, 0};{0, 1, 1, 0, 1, 1, 0, 0};{1, 1, 1, 1, 1, 0, 0, 0}};

zifu[0]={1, 1, 1, 1, 1, 0, 0, 0};
zifu[1]={0, 1, 1, 0, 1, 1, 0, 0};
zifu[2]={0, 1, 1, 0, 0, 1, 1, 0};
zifu[3]={0, 1, 1, 0, 0, 1, 1, 0};
zifu[4]={0, 1, 1, 0, 0, 1, 1, 0};
zifu[5]={0, 1, 1, 0, 0, 1, 1, 0};
zifu[6]={0, 1, 1, 0, 1, 1, 0, 0};
zifu[7]={1, 1, 1, 1, 1, 0, 0, 0};

//并且分别用每行首字符地址来初始化也不行??
};
︿ 0
把分号改成逗号,又出现如下错误:
error C2143: syntax error : missing ';' before ','