我的值在我的设置函数中没有改变

My value is not changing in my set function

n 的值正在传递到我的 void Cell::setValue(int value) 函数,但 m_value 没有改变。谁能解释这里出了什么问题?

文件读入

void SudokuPuzzle::readPuzzle(const char filenameIn[]) {
// Add code to read in a puzzle from the text file and store within the SudokuPuzzle object
ifstream inStream;
inStream.open(filenameIn);


for (int i = 0; i < 9; i++)
{
    for (int j = 0; j < 9; j++)
    {
        int n;
        inStream >> n;
        m_grid[i][j].setValue(n);
    }
}

在单元格中设置值

void Cell::setValue(int value)
{
    m_value = value;

    if (m_value = 0)
    {
        m_given = true;
    }
}

例如,当 n 设置为 3 时,它会传递给 value

m_value = value 不会将 m_value 设置为 3

在这种情况下:

if (m_value = 0)

尽管 m_value 之前被赋予了 value 的值,但在这里被赋予了 0 的值。

您可能打算将 m_value0 进行比较,如下所示:

if (m_value == 0)

如果您打开编译器警告(例如 -Wall),您将被告知此代码可能是一个错误。