Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 11.10.2009
Сообщений: 13

Перегрузка операторов для матриц

17.03.2010, 20:36. Показов 1752. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно реализовать перегрузку оператора *,чтобы для заданных матриц можно было написать уравнение С=А*В,т.е. перемножить тем самым матрицы А и В и получить тем самым нужную матрицу С
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2010, 20:36
Ответы с готовыми решениями:

Перегрузка операторов
Описать класс матриц размерности (3х3) и перегрузить операции над матрицами, чтобы можно было вычислить значение выражения : R = tr {...

Перегрузка операторов << и >>
Доброго времени суток. У меня следующая проблемма: нужно перегрузить операторы данные операторы, чтобы &lt;&lt; и &gt;&gt; были допустимы в...

Умная перегрузка операторов сравнения
#define SCPP_DEFINE_COMPARISON_OPERATORS(Class) \ bool operator &lt; (const Class&amp; that) const { return CompareTo(that) &lt; 0; } \ bool...

3
8 / 8 / 1
Регистрация: 10.11.2009
Сообщений: 36
18.03.2010, 08:39
допустим у тебя есть класс Matrix и в нем есть поле matrix (т.е. сама матрица)
собственно перегрузка оператора выглядит следующим образом:
Matrix& operator * (const Matrix&, const Matrix&); - это в теле класса
а дальше реализуеш этот метод
0
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
18.03.2010, 20:58
Оператор умножения должен возвращать новую матрицу через стек, не трогая операнды. Стало быть, Matrix Matrix::operator *(const Matrix&) const;
А вот оператор домножения меняет первый аргумент, поэтому он Matrix& Matrix::operator *= (const Matrix&);
В принципе, имея готовый оператор домножения, умножение обычно делают так:
C++
1
2
3
4
5
6
Matrix Matrix::operator *(const Matrix& m2) const
{
    Matrix rv(*this);
    rv *= m2;
    return rv;
}
1
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
14.12.2010, 13:17
написал вот так :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Matrix Matrix::operator + (const Matrix& b)
{  
   if (nstr == b.nstr && nstl == b.nstl)
        {     
           Matrix rv(*this);          
           for (int i=0;i<nstr;i++)           
              for (int j=0;j<nstl;j++)
                 rv.a[i][j]=a[i][j]+b.a[i][j];                 
           return rv;
        }              
   else 
      error(2);         
}
компилятор не ругается,но вылазит ошибка Matrix.exe (отправлять, не отправлять)
в чем же может быть проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2010, 13:17
Помогаю со студенческими работами здесь

Перегрузка операторов I/O в шаблонном классе
Добрый день. Создать шаблонный класс для работы с множествами. Максимальное количество элементов множеств - 65534. Осуществить...

Перегрузка операторов в уже сделанной программе
Мне нужно перегрузить некоторые операторы : void operator = (int); // Включить и выключить сеть void operator += (float); // чтото...

Перегрузка операторов для класса матриц
Собственно, суть проблемы. Пишу класс матриц (хочется), оператор присваивания работает только тогда, когда функция (ну или, например,...

Перегрузка операторов + матриц - C++
Задание : определить класс «Квадратная матрица» - Matrix. Класс должен иметь несколько конструкторов, у том числе конструктор копирования. ...

Сложение и вычитание матриц. Перегрузка операторов.
Добрый день)) посмотрите пожалуйста на мой код и помогите, если не сложно) #include &lt;conio.h&gt; #include &lt;iostream&gt; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru