0 / 0 / 1
Регистрация: 18.04.2011
Сообщений: 11
|
|
1 | |
Переопределение [][] или ()() для класса21.04.2011, 12:18. Показов 1252. Ответов 14
Метки нет (Все метки)
Есть класс Array, в котором переопределены операторы (+, -, ==, != и т.д) для работы с матрицами.
Нужно так же переопределить оператор [][] или ()() для обращения к элементу матрицы напрямую. Спасибо.
0
|
21.04.2011, 12:18 | |
Ответы с готовыми решениями:
14
Переопределение оператора () для своего класса Переопределение класса Переопределение класса вектор переопределение методов класса в массиве |
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
||||||
21.04.2011, 15:41 | 2 | |||||
1
|
0 / 0 / 1
Регистрация: 18.04.2011
Сообщений: 11
|
|
26.04.2011, 18:45 [ТС] | 3 |
Спасибо Что-то особых отличий от своего кода я не выявил..
Перечитал лекции. Оказалось, я что-то не так понял или препод не до конца разъяснил. Короче, немного меняется задача. Цитирую лекции:
0
|
5057 / 3117 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
26.04.2011, 21:16 | 4 |
0
|
0 / 0 / 1
Регистрация: 18.04.2011
Сообщений: 11
|
|
26.04.2011, 23:48 [ТС] | 5 |
0
|
5057 / 3117 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
27.04.2011, 00:02 | 6 |
Спорно потому, что реализация вообще ничем отличаться не будет, кроме сигнатуры.
Догадки следующие: матрицу делать не на основе обычного двумерного динамического массива, а на основе массива объектов, скажем, класса Vector (имеется ввиду самописный, алгебраический вектор, с соответствующими операциями), который основан на одномерном массиве. Тогда в Matrix надо перегрузить оператор [] так, чтобы он возвращал ссылку на Vector, а в Vector этот оператор перегрузить так, чтобы он уже ссылку на элемент возвращал. Тогда вызов [][] последовательно вернёт объект класса Vector (первые []), а затем уже элемент (вторые []). Во всяком случае, я бы именно так делал. Кстати, при таком представлении и с матрицами удобно работать (если перегружены операции с векторами, операции с матрицами на их основе реализуются куда проще).
1
|
0 / 0 / 1
Регистрация: 18.04.2011
Сообщений: 11
|
|
27.04.2011, 00:24 [ТС] | 7 |
Большое спасибо
Хотя бы есть направление. А насчет круглых скобок нет вариантов?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
27.04.2011, 00:59 | 8 |
marphey, Примерно такой же вариант насчет ().
1
|
5057 / 3117 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
27.04.2011, 01:07 | 9 |
ForEveR, я бы сказал, точно такой же )))
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
27.04.2011, 01:20 | 10 |
silent_1991, Ну да. Если бы требования были возврата именно элемента можно было бы перегрузить скобки с двумя параметрами. А так, только такой же, да
0
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
27.04.2011, 05:20 | 11 | |||||
А такой разве есть?
Эйси, а тогда как разрешить менять рамеры самостоятельных массивов, но раздельное изменение размеров строк матрицы запретить (матрица должна быть строго прямоугольной)?
0
|
5057 / 3117 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
27.04.2011, 08:06 | 12 |
taras atavin, возможно, сделать базовый класс, в котором определить всё, что можно, а ресайз сделать закрытым, и производный, в котором открыть ресайз. Матрицу сделать другом вектора и делать саму матрицу на основе базового класса с закрытым ресайзом.
Добавлено через 51 секунду А можно положиться на совесть пользователя))
0
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
27.04.2011, 08:14 | 13 |
Зачем другом? Тогда уж лучше пусть внутри в матрице валяются строки с открытым ресайзом, а [] приводит тип к базовому классу вообще без ресайза. И по аналогии расширять на трёхмерный случай.
Добавлено через 1 минуту Это существо бессовестно на столько, что умудряется ставить задержку и период автоповтора на 0 и ругать программистов, если не читается дискета.
1
|
5057 / 3117 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
27.04.2011, 08:43 | 14 |
Можно и так.
Потому и поставил пару скобочек в конце)))
0
|
0 / 0 / 1
Регистрация: 18.04.2011
Сообщений: 11
|
|
27.04.2011, 12:25 [ТС] | 15 |
Возможно я неверно выразился в топе, но в последующих сообщениях и исправился и привел конкретную выдержку из задания.
0
|
27.04.2011, 12:25 | |
27.04.2011, 12:25 | |
Помогаю со студенческими работами здесь
15
Переопределение метода класса-шаблона Переопределение оператора <<, класса ofstream Переопределение переменной класса-родителя Наследник класса, переопределение функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции.
/ / . . .
|
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование
Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
|
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы
В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
|
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире
В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
|
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации
В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
|
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии
В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
|
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации
В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
|
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику
Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
|
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику
В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
|
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера
Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
|
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды
В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
|
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике
В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
|