Здравствуйте.
Есть класс-шаблон Matrix<Type> — двумерный массив(атрибуты класса: Type* t, int rows, int cols). Как можно переопределить оператор [][] для данного класса?
Здравствуйте, cpp-c0der, Вы писали:
CC>Здравствуйте. CC>Есть класс-шаблон Matrix<Type> — двумерный массив(атрибуты класса: Type* t, int rows, int cols). Как можно переопределить оператор [][] для данного класса?
никак. надо чтобы оператор [] был (пере)определен у класса T
CC>...Как можно переопределить оператор [][] для данного класса?
Такого оператора нет. Следует определить оператор [], возвращающий прокси-объект представляющий строку, к которому в свою очередь применим оператор [].
Здравствуйте, cpp-c0der, Вы писали:
CC>Здравствуйте. CC>Есть класс-шаблон Matrix<Type> — двумерный массив(атрибуты класса: Type* t, int rows, int cols). Как можно переопределить оператор [][] для данного класса?
заводишь левый класс с оператором [], возвращающим то, что тебе надо, в матрице заводишь operator[], возвращающий объекта этого левого класса, и второй вызов [] придет уже к нему
Здравствуйте, cpp-c0der, Вы писали:
CC>Здравствуйте. CC>Есть класс-шаблон Matrix<Type> — двумерный массив(атрибуты класса: Type* t, int rows, int cols). Как можно переопределить оператор [][] для данного класса? http://www.rsdn.ru/Forum/Message.aspx?mid=61559
Здравствуйте, sergey_shandar, Вы писали:
_>Здравствуйте, cpp-c0der, Вы писали:
CC>>Здравствуйте. CC>>Есть класс-шаблон Matrix<Type> — двумерный массив(атрибуты класса: Type* t, int rows, int cols). Как можно переопределить оператор [][] для данного класса? _>http://www.rsdn.ru/Forum/Message.aspx?mid=61559
Здравствуйте, cpp-c0der, Вы писали:
CC>Здравствуйте. CC>Есть класс-шаблон Matrix<Type> — двумерный массив(атрибуты класса: Type* t, int rows, int cols). Как можно переопределить оператор [][] для данного класса?
еще два варианта:
int& operator() (int x, int y) { return ...; }
// or...int& operator[] (xy c) { return ...; }
// где xy естьstruct xy
{
int x,y;
xy(int xx, int yy): x(xx),y(yy){}
};