-2
我重載了一個運算符[],但它沒有按我的意願工作。重載運算符[]
class A{
int *const e;
const int row, column;
public:
int rows() const
{
return row;
}
int columns() const
{
return column;
}
int size() const
{
return row * column;
}
A(int r, int c)
: row(r), column(c), e(new int[r*c])
{
for (int i = 0; i < r*c; i++)
{
e[i] = 0;
}
}
virtual int *const operator[ ](int r)
{
return &e[r*row];
}
}
例如: 如果我寫道:
A a(2, 5)
a[0][0] = 1; // OK
a[0][1] = 2; // OK
a[0][2] = 3; // It's assigned a [0][2] == 3 but also [1][0] == 3
我沒有發現問題。它應該爲[0] [2]分配一個值3 這段代碼有什麼問題?
哦好吧,我已經改變了,但我仍然有同樣的問題 – Cieja 2014-12-06 09:02:31
如果你改正了它,你不能有同樣的問題。你可能有類似的問題,但不一樣。 – 2014-12-06 09:14:07
是的,但我的意思是說結果是一樣的 – Cieja 2014-12-06 10:46:32