powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / матрица перезагрузка
6 сообщений из 6, страница 1 из 1
матрица перезагрузка
    #34284224
morf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть класс для работы с матрицами. Подскажите пожалуста как для него перегрузить оператор [][]
То есть хочется чегото такого:
int operator[][](int i,int j);
а потом чтобы в самой программе пишеш:
int a = Матрица [j];
как перегрузить одну скобку я знаю а две нет.
Помогите.
...
Рейтинг: 0 / 0
матрица перезагрузка
    #34284265
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
morf пишет:
Есть класс для работы с матрицами. Подскажите пожалуста как для него
> перегрузить оператор [][]
> То есть хочется чегото такого:
> int operator[][](int i,int j);
> как перегрузить одну скобку я знаю а две нет.

В том то и дело, что никак.
оператор [][] не существует в принципе.

Варианта тут два. Либо реализуют класс, который агрегирует
в себе все индексы матрицы, и operator[] перегружают
чтобы он принимал объект такого класса,
либо реализуют матрицу так что она является
массивом объектов-строк (или столбцов), тогда
operator[] матрицы перегружают для возврата строки (столбца),
а operator[] строки (столбца) уже в свою очередь перегружают
для возврата элемента матрицы.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
матрица перезагрузка
    #34284292
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
morfЕсть класс для работы с матрицами. Подскажите пожалуста как для него перегрузить оператор [][]
То есть хочется чегото такого:
int operator[][](int i,int j);
а потом чтобы в самой программе пишеш:
int a = Матрица [j];
как перегрузить одну скобку я знаю а две нет.
Помогите.


Сделать это можно так:
перегрузить оператор [] так чтобы он возващал указатель на начало нужной строки. В этом случае повторное применение оператора [] даст как раз нужный элемент.
Еще лучше сделать класс для строки матрицы и унего перегрузить оператор [] , и чтобы оператор [] матрицы возвращал ссылку на этот объект.
...
Рейтинг: 0 / 0
матрица перезагрузка
    #34284575
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создать класс - вектор. перегрузить.
создать класс - матрицу, используя вектор. перегрузить. класс - матрица должна возвращать вектор.

хотя вектор здесь - частный случай матрицы.
делай так: operator[](int i)
и если n*m и n==1 то пусть выбирает по m. иначе по n.

аффтопитезь: объект либо именован, либо не существует
...
Рейтинг: 0 / 0
матрица перезагрузка
    #34284730
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklinсоздать класс - вектор. перегрузить.
создать класс - матрицу, используя вектор. перегрузить. класс - матрица должна возвращать вектор.

c этим полностью согласен

Aklin
хотя вектор здесь - частный случай матрицы.
делай так: operator[](int i)
и если n*m и n==1 то пусть выбирает по m. иначе по n.

а вот так извращаться точно не стоит.
...
Рейтинг: 0 / 0
матрица перезагрузка
    #34284787
morf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вобщем выкрутился так

int* TMatrix::operator[](int i)
{
return mas;
}[quot автор]


а для int оператор [] уже перегружен.
Элементы матрицы всеравно описаны как int** mas.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / матрица перезагрузка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]