我对c ++很新,需要一些指导。 我目前有一个9x9 2d阵列由" cell"存储诸如单元格值,位置等内容的对象。
我可以使用方法int getValue();
int cell::getValue()
{
return value;
}
我在整个程序中使用此方法没有问题,但是,在尝试将每个单元格的值流式传输到文本文件时出现问题。
以下是将值流式传输到文本文件的方法:
void SudokuPuzzle::Output() const
{
ofstream fout("sudoku_solution.txt"); // DO NOT CHANGE THE NAME OF THIS FILE
if(fout.is_open())
{
for(int y = 0; y < 9; ++y)
{
for(int x = 0; x < 9; ++x)
{
// output each grid value followed by " "
fout << grid[y][x].getValue() << " ";
}
fout << endl;
}
fout.close();
}
}
错误发生在该行:
fout << grid[y][x].getValue() << " ";
&#39; int cell :: getValue(void)&#39;:无法转换&#39;这个&#39;指针来自&#39; const cell&#39;到&#39; cell&amp;&#39;
编辑:网格定义如下:
cell grid[9][9];
请不要犹豫,询问是否需要更多信息。 任何帮助将不胜感激!
答案 0 :(得分:0)
从提供的代码中不完全清楚,但如果grid是SodukuPuzzle的成员,那么当Output方法是const时,网格在方法内,这意味着grid[y][x]
是const。 cell::getValue
是非const的,因此无法在const对象上调用。你可以通过制作cell::getValue
const。