-1

我想重载运算符 =。

这是我的代码

#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;
}

它不起作用,我不知道为什么。网格 p2 为空。

4

1 回答 1

0

你知道吗:

battle_grid[w][l] = ex.battle_grid[w][l];

不复制整个双精度数组

于 2013-06-11T07:47:13.553 回答