C++ - 在类上初始化一个空数组

标签 c++ arrays

我在初始化一个空数组时遇到了一些麻烦,或者我在类里面这样调用它。基本上我想用 0 填充一个二维数组。

这是我的代码:

板.cpp

#include "Board.h"
#include <string>
#include <iostream>
#include "Player.h"

using namespace std;

Board::Board()
: _board{ { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }
{
}

void Board::drawBoard()
{
    for (int i = 0; i < 4; i++){
        for (int j = 0; j < 4; j++){
            if (i == 0 && j == 0){
                cout << " ";
            }
            else if (i == 0){
                cout << " " << j << " ";
            }
            else if (j == 0){
                cout << i;
            }
            else {
                if (_board[i][j] == 0)
                    cout << "| " << "|";
                else
                    cout << "|" << _board[i][j] << "|";
            }
        }
        cout << endl;
    }
}

void Board::playerInput(char input)
{
}

这是 Board.h:

#pragma once
#include <string>
#include <iostream>

class Board
{
public:
    Board();
    void drawBoard();
    void playerInput(char input);


private:
    char _board[3][3];
    char _input;
};

这是初始化数组的正确方法吗?我读了一些文章,但它让我更加困惑。 如果我听起来很愚蠢,我很抱歉。但我需要你的帮助。 谢谢。

最佳答案

您需要做的就是值初始化数据成员:

Board::Board() : _board() {}

这将对 _board 的所有元素进行零初始化,并且也适用于 C++03。

关于C++ - 在类上初始化一个空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25589256/

相关文章:

arrays - 如何将动态数据快速获取到数组 KingFisher

javascript - 如何使用 Ramda 将数组数组转换为对象数组?

c++ - 为什么 std::swap 不使用交换习语?

c++ - 从 cin 中存储 '\n' 字符

c++ - 具有协变返回类型的方法在VC++上崩溃

c++ - 使用 FFMPEG 编码 H264 时如何转储缓冲区?

c++ - CZMQ : Getting started on Raspberry-Pi

ios - 将分布在屏幕边缘的可移动 UILabel 保存到有序数组中

arrays - 我如何确保用户不能重复输入?

c - 填充结构数组的数组?