Я хочу перегрузить оператор =.
Это мой код
#define w 10
#define l 10
class grid
{
private:
char battle_grid[w][l];
[...]
public:
grid();
[...]
void show_grid();
grid& operator=(const grid& ex)
{
battle_grid[w][l] = ex.battle_grid[w][l];
return *this;
}
}
grid::grid()
{
int i,j;
for(i=0;i<w;i++) {
for(j=0;j<l;j++) {
battle_grid[i][j] = '.';
}
}
}
и когда я пытаюсь что-то вроде этого в функции main:
int main()
{
[...]
grid p1, p2;
[...]
p2 = p1;
p2.show_grid();
return 0;
}
это не работает, и я не знаю почему. Сетка р2 пуста.
Знаете ли вы, что:
battle_grid[w][l] = ex.battle_grid[w][l];
не копирует весь двойной массив
Других решений пока нет …