重载运算符=

时间:2013-06-11 07:36:48

标签: c++ oop overloading equals operator-keyword

我想重载operator =。

这是我的代码

#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为空。

1 个答案:

答案 0 :(得分:0)

你知道吗:

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

不会复制整个双数组