|
14 / 14 / 0
Регистрация: 08.07.2009
Сообщений: 61
|
||||||
Переопределение операторов26.10.2009, 17:53. Показов 2840. Ответов 6
Метки нет (Все метки)
Еще раз об этом интересном вопросе. У меня есть матрицы , условно назовём их тип matrix, есть библиотека, имеющая в своём составе функции операций линейно алгебры, аналогичные обычным, т.е. сложение/вычитание/умножение/деление и т.д. , я бы хотел переопределить стандартные арифметические операторы для этих матриц, т.е.
matrix A,B,C; C = A + B; где
Везде, где я встречал, речь шла о переопределении-перегрузке операторов как функций - членов класса. Возможно ли написать обычные сишные функции для перегрузки операторов или перегрузка - прерогатива ООП и они перегружаются по стандартам С++ как методы класса? Если так, то мне надо сделать класс - обертку для этого? И какая область видимости такой функции? Можете привести пример кода или ссылку?
0
|
||||||
| 26.10.2009, 17:53 | |
|
Ответы с готовыми решениями:
6
Переопределение операторов переопределение операторов |
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 26.10.2009, 18:06 | |
|
blackswan,
Возможно ли написать обычные сишные функции для перегрузки операторов невозможно. Если так, то мне надо сделать класс - обертку для этого? class matrix { ... - тут обертки для Си-функций перегрузка оператора сложения friend matrix operator+(const matrix& a, const matrix& b); }; здесь будет собственно тело функции matrix operator+(const matrix& a, const matrix& b) ...
0
|
|
|
14 / 14 / 0
Регистрация: 08.07.2009
Сообщений: 61
|
||||||
| 26.10.2009, 18:13 [ТС] | ||||||
|
вот так?
matrix A,B,C; C = A + B; ? а что случиться с самим истинным классом matrix? Разве этим я его не переопределяю? Кстати, я не уверен, что это класс, возможно это обычный массив.
0
|
||||||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 26.10.2009, 18:22 | |
|
blackswan,
вот так? я не знаю что это за функция add, поэтому не могу сказать должно быть примерно так (cmatrix это структура для Си, в которой объявлена матрица): - временные переменные cmatrix m1, m2; - тут ты каким-либо образом запихиваешь данные из a и b в m1 и m2 - тут будет результат для Си-структуры: cmatrix result; - сложение через Си-функцию matrix_add(&result, &m1, &m2); - преобразование в C++ - класс matrix out(result); return out; а что случиться с самим истинным классом matrix? что такое "истинный" класс? где-то ещё есть не-истинный?
0
|
|
|
14 / 14 / 0
Регистрация: 08.07.2009
Сообщений: 61
|
|
| 26.10.2009, 18:29 [ТС] | |
|
функция add выглядит так matrix add(matrix A,matrix B), она сама возвращает результат через своё имя.
что такое "истинный" класс? где-то ещё есть не-истинный? ну предложенный класс называется matrix, также как и тип моих матриц, возможно matrix - это уже класс, описывающий мои матрицы.
0
|
|
|
14 / 14 / 0
Регистрация: 08.07.2009
Сообщений: 61
|
|
| 28.10.2009, 10:11 [ТС] | |
|
что-то моя тема потерялась среди других, так что насчет моего предыдущего поста?
0
|
|
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 44
|
|
| 30.11.2009, 13:55 | |
|
А вы бы не могли написать свой код библиотеки!!! Очень нужно!!!
0
|
|
| 30.11.2009, 13:55 | |
|
Помогаю со студенческими работами здесь
7
Переопределение операторов С++
Переопределение операторов и массивы Создать класс строку в С++. Переопределение операторов Возможно ли переопределение операторов для пользовательских типов? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|