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