2010-12-04 314 views
2

当过我尝试初始化多维数组我得到以下错误:初始化多维数组

(20) : error C2059: syntax error : '{' 

这是我的代码:

/* 
*  Tic-Tac-Toe 
*  Version 1.0 
*  Copyright (C) 2010 lolraccoon. All rights reserved. 
*/ 
#ifndef GAME_H 
#define GAME_H 

#include <iostream> 
using namespace std; 

class Game 
{ 
private: 
    /* 
    *  0 = NONE 
    *  1 = HUMAN 
    *  2 = COMPUTER 
    */ 
    int board[3][3] = {0}; 
    char pieces[3] = {' ','X','O'}; 
public: 
    void dispBoard(); 
}; 

#endif 
+12

我完全走,直到我意识到你的高清版权撕掉你的代码。该死的。 – 2010-12-04 00:24:40

+1

这与它是一个多维数组无关。你正试图初始化一个类变量。不能这样做。看到我的答案。 – EboMike 2010-12-04 00:26:34

回答

1

这是不是你唯一的错误。类不能这样使用。 ü需要一个构造函数来设置值等等等等

试一下:

#ifndef GAME_H 
#define GAME_H 

#include <iostream> 
using namespace std; 

class Game 
{ 
private: 
    int board[3][3]; 
    char pieces[3]; 
public: 
    void dispBoard(); 
    Game() 
    { 
    board = { }; 
    pieces = {' ','X','O'}; 
    } 
}; 

#endif 

请记住,海湾合作委员会给了我:

:21: warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x 
:22: warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x 

而且没有我不知道如何解决这些2个警告。恕我直言,玩C++多一点。

1
int board[3][3] = {}; 

我不知道人们为什么坚持写0,这是需要。