|
15 / 15 / 5
Регистрация: 13.11.2011
Сообщений: 65
|
||||||
перегрузка []13.11.2011, 17:34. Показов 1986. Ответов 15
Метки нет (Все метки)
доброго времени суток.. суть задачи такова:
есть класс матриц, матрица хранится в виде одномерного массива.. я перегрузил << и += теперь нужно получить доступ для чтения и записи к элементу с заданными индексами.. почитал где-то.. результат каждого [] должен выдавать строку из заданного массива.. тоесть первый выдаст строку из двухмерного, второй элемент из строки.. впринципе можно это сделать.. только вот как? циклом выдергивать из моего одномерного массива элементы с нужным индексом, их сохранять в другой одномерный массив.. получается нужно создавать каждый раз объект, в котором в итоге будет матрица из одного элемента? Добавлено через 50 секунд
0
|
||||||
| 13.11.2011, 17:34 | |
|
Ответы с готовыми решениями:
15
Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов перегрузка [] |
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 13.11.2011, 17:59 | |
|
перегрузить [][] не выйдет у вас.
обычно так делают - для матрицы перегрузят [] как возврат строки, а для строки [] как возврат элемента. ну и с наследованием... а 2 одинаковых [] сделать для 1 класса не выйдет... лучше перегрузи operator() (int,int)
0
|
|
| 13.11.2011, 18:02 | |
|
0
|
|
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 13.11.2011, 18:04 | |
|
Jupiter, ну класс допустим Матрица наследует класс Вектор
![]() ну можно его как вложенный конечно сделать...
0
|
|
|
15 / 15 / 5
Регистрация: 13.11.2011
Сообщений: 65
|
|
| 13.11.2011, 21:53 [ТС] | |
|
ну с () было б проще канеш.. но по заданию сказано
II. С помощью операторов-элементов класса обеспечить: 1) доступ к элементам матрицы по индексу строки и столбца (чтение/запись), т.е. переопределить оператор []; Добавлено через 1 час 21 минуту и в том же задании сказано хранить двухмерный массив в виде одномерного Добавлено через 1 час 44 минуты ну так что?
0
|
|
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||||||||||||||||
| 13.11.2011, 22:25 | ||||||||||||||||
|
ну как вариант передавать в кач-ве индекса "ту самую" формулу i*(кол. столбцов)+j
подходи к преподу и обсуждай с ним, иначе никак. Добавлено через 2 минуты да вариантов можно придумать... но они все "сам понимаешь".
1
|
||||||||||||||||
|
15 / 15 / 5
Регистрация: 13.11.2011
Сообщений: 65
|
|
| 13.11.2011, 23:20 [ТС] | |
|
лан, подожду чо препод скажет) спасибо
0
|
|
|
13 / 11 / 1
Регистрация: 02.11.2009
Сообщений: 194
|
|
| 14.11.2011, 00:45 | |
|
0
|
|
|
15 / 15 / 5
Регистрация: 13.11.2011
Сообщений: 65
|
|
| 14.11.2011, 09:33 [ТС] | |
|
ну он двухмерный.. в объекте хранится как одномерный, рядом с числом строк и столбцов..
0
|
|
|
15 / 15 / 5
Регистрация: 13.11.2011
Сообщений: 65
|
||||||
| 20.11.2011, 15:43 [ТС] | ||||||
|
а оказывается всё достаточно просто)
2
|
||||||
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 20.11.2011, 22:42 | |
|
хитрО согласен.
сами дошли аль препод подсказал?
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 21.11.2011, 14:56 | |
|
OstapBender, стандартный приём, нарушающий инкапсуляцию. Ничего не мешает передать полученный указатель оператору delete.
0
|
|
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 21.11.2011, 16:21 | |
|
silent_1991, ну не знаю стандартный или не стандартный, но надеюсь он мне никогда не пригодится, т.к хранить 2-мерный массив в виде 1-мерного я не собираюсь )
0
|
|
|
15 / 15 / 5
Регистрация: 13.11.2011
Сообщений: 65
|
|
| 21.11.2011, 18:01 [ТС] | |
|
OstapBender, пока ждал препода нечто подобное в голове вертелось, а потом и он сказал тоже самое..
silent_1991, опасненько тоесть выходит такое делать?
0
|
|
|
Заблокирован
|
||
| 21.11.2011, 19:02 | ||
|
Однако, если выдал указатель на внутренние данные -считай что сделал их все пабликами. Теперь снаружи с ними можно будит делать все что угодно. Во-первых, это искушение) Во-вторых, молодые по неопытности могут залезть туда, куда залазить не следует) В общем, в определенной ситуации кто нибудь может этим воспользоваться. А дальше начинается быдлокод. С другой стороны, существует масса способов как хакнуть класс, и обойти его инкапсуляцию. Так что, если кому нибудь очень понадобится, никакие private модификаторы его не остановят.
0
|
||
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||||||
| 21.11.2011, 21:24 | ||||||
|
Bers, ага, например,
0
|
||||||
| 21.11.2011, 21:24 | |
|
Помогаю со студенческими работами здесь
16
C++ Перегрузка Перегрузка перегрузка Перегрузка +,-,++,-- Перегрузка + Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|