Страница 1 из 1

Об операндах

Добавлено: 23 окт 2009, 08:52
atavin-ta
Не понимаю, почему нельзя перегружать оператор присваивания на произвольное число операндов. На паскале массив массивов - синоним массива суммарной размерности. То есть к трёхмерному можно обращаться:
1. как к одномерному массиву одномерных массивов одномерных массивов,
2. как к одномерному массиву двумерных массивов,
3. как к двумерному массиву одномерных массивов,
4. как к трёхмерному массиву,
причём, по-моему, не зависимо от того, как именно массив задекларирован. А на плюсплюсе приходится для каждого многомерного динамического массива объявлять не только класс массива полной размерности, но и кучу вспомогательных классов динамических массивов единичной и всех промежуточных размерностей. Очень не удобно. Удобнее было бы так:

Код: Выделить всё

class TArray3
{
 protected:
 double *Data; 
 int nx,ny,nz;
 ...
 public:
 double & operator [] (int x,y,z) 
 {
  return Data[x+y*nx+z*nx*ny];
 }
... 
};
.Объявил сразу трёхмерный оператор индексации и никаких гвоздёв. Но почему-то на плюсплюсе так нельзя. Какой униксоид это придумал и будет ли это исправлено?