我有一个类(class),不知道如何解决.cc文件中的错误以进行编译

.h文件的摘录以显示.h文件中的板

    class sudokuboard {

 private:

  /*** Member data ***/

  char board[9][9];

.cc文件的零件给我带来麻烦
sudokuboard::sudokuboard()
{
  for (size_t r = 0; r < 9; r++){
    for (size_t c = 0; c < 9; c++)
        board[r][c] = '_';
  }
}

void sudokuboard::print() const
// write the board to cout
{
    for (size_t r = 0; r < 9; r++){
        string colStr = "";
        for (size_t c = 0; c < 9; c++){
            colStr += board.get(r, c);
        }
        cout << colStr << endl;
    }

void sudokuboard::remove(size_t r, size_t c)
// remove the numeral at position (r,c)
{
    board[r][c] = "_";
}

ERRORS:
sudokuboard.cc: In member function ‘void sudokuboard::print() const’:
sudokuboard.cc:26: error: request for member ‘get’ in ‘((const
sudokuboard*)this)->sudokuboard::board’, which is of non-class type
‘const char [9][9]’
sudokuboard.cc: In member function ‘void sudokuboard::remove(size_t,
size_t)’:
sudokuboard.cc:42: error: invalid conversion from ‘const char*’ to ‘char’
sudokuboard.cc:59: error: request for member ‘get’ in ‘((const
sudokuboard*)this)->sudokuboard::board’, which is of non-class type ‘const
char [9][9]’

我不知道该更改什么了。我尝试了很多不同的方法。

最佳答案

问题是C样式数组没有get方法。
最简单的解决方案是使用board[r][c]访问变量。
但是我建议使用c++容器。

using Row = std::vector<char>;
using Matrix = std::vector<Row>;

Matrix board;

或者,如果您想更进一步,则可以将Matrix设为一个类,以便可以使用getset坐标来实现自己的xy函数。

关于c++ - 从 ‘const char*’到 ‘char’的无效转换类错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46703802/

10-09 17:46