Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 初始化多维数组_C++ - Fatal编程技术网

C++ 初始化多维数组

C++ 初始化多维数组,c++,C++,每次尝试初始化多维数组时,都会出现以下错误: (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

每次尝试初始化多维数组时,都会出现以下错误:

(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
/*
*抽搐
*版本1.0
*版权所有(C)2010 Lolracoon。版权所有。
*/
#ifndef游戏
#定义游戏
#包括
使用名称空间std;
班级游戏
{
私人:
/*
*0=无
*1=人
*2=计算机
*/
int板[3][3]={0};
字符块[3]={'','X','O'};
公众:
无效显示板();
};
#恩迪夫

不能初始化类变量(静态除外)。还有其他问题,它详细解释了推理,但只是很快——这会导致编译器在构造函数中创建代码,这违背了C++的性质。 以下是关于同一问题的最新问题:


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

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

试试看:

#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

不,我不知道如何修复这两个警告。IMHO玩C++多一点。

我完全要破解你的代码,直到我意识到你有版权。该死,这和它是多维数组无关。您正在尝试初始化一个类变量。不能那样做。看我的答案,认真的。这是一个合理的问题,有一个简短的代码示例来解释这种情况。当然,关于这个问题的假设是错误的,但这就是为什么他一开始就这么问的原因+从我这里得到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