![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: 2 Всего: 3 |
Класс matrix описывает одну матрицу, а для работы с несколькими матрицами создается несколько экземпляров класса.
-------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
yorgan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Как?
Не могу понять в чем именно ошибка... ООП практически не знаю :( |
|||
|
||||
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: 2 Всего: 3 |
Зачем в классе 3 массива для матриц? Вам надо использовать 3 матрицы? Тогда переопределяем оператор умножения для класса matrix и умножаем матрицы так:
-------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
yorgan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Это все, что не правильно в коде?
Матрицы три, т.к. нужно разные действия делать: умножать 2 матрицы друг на друга, результат помещать в третью. А как переопределить оператор умножения? |
|||
|
||||
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: 2 Всего: 3 |
Вообще-то не мешало бы воспользоваться поиском на тему "Перегрузка операций"
И можно посмотреть тут. Это сообщение отредактировал(а) bronislav - 6.6.2008, 10:54 -------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
yorgan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
времени уже нету. Через 40 минут нужно уже выезжать в универ :(
P.s. в коде больше ошибок\неточностей нету? |
|||
|
||||
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: 2 Всего: 3 |
Ну по аналогии с умножение надо переделать функции ввода и др. Добавлено через 1 минуту и 24 секунды Оно компилируется? Значит работает, но будь готов к тому, что преподаватель отрицательно отреагирует на такой код. -------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
yorgan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Не компилится :(
Ругается на переменную i в каждой функции - типа много раз она уже объявлена. А вот обращение по [][] к элементу матрицы - преподаватлеь имел ввиду просто написать функцию, которая будет выводить элементы матрицы по указанным i и j или нужно переопределять операцию [][] ???? |
|||
|
||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Я бы порекомендовал в качестве параметров шаблона задавать еще и размерность матрицы:
1. автоматические матрицы занимают много места в стеке (а зачем много автоматических матриц?) Преимущества: 1. высокая скорость создания объекта 2. не надо заморачиваться с конструктором копирования 3. высокая скорость доступа к элементам (компилятор генерирует код оптимизированный под конкретные значения размерностей) 4. возможность написания легко оптимизируемых алгоритмов расчета определителя 5. возможность организации на стадии компиляции проверки на корректность арифметических операций (т.е. нельзя перемножить матрицу 4x4 на 3x3), как-то так:
|
||||
|
|||||
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: 2 Всего: 3 |
![]() Это сообщение отредактировал(а) bronislav - 6.6.2008, 12:27 -------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
yorgan: То что ты навоял - работает?
На всякий случай держи вот этот шаблон. Сам юзаю в проекте по разложению звука на спектр.
Так как шаблон выдран из проекта, возможны ошибки компиляции. Думаю ты разберешся... Удачи. Это сообщение отредактировал(а) andrew_121 - 6.6.2008, 15:07 Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Да, и еще...
Остальной функционал набросай сам. Методы все есть, теории в инете то же. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
yorgan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Спасибо за помощь. Буду разбираться (нужно переопределить еще операцию умножения - для умножения матриц и взятие элемента через операцию [][] )
Преподватель спросил: а можно ли этот файл ( шаблонный класс "матрица") сделать библиотекой? Если нельзя, то почему? Это сообщение отредактировал(а) yorgan - 8.6.2008, 14:15 |
|||
|
||||
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: 2 Всего: 3 |
Для каждого набора аргументов шаблона на этапе компиляции содается свой класс, который уже и обрабатывается компилятором.
Библиотекой сделать можно, НО при условии его не доступности вне библиотеки. Т.е. использование только для внутренних нужд. Возможно ошибаюсь. -------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
yorgan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Вот код:
Вопрос по прежнему актуален. Можно ли сделать из него библиотеку matrix.lib ? А можно сделать из этого кода хеадер-файл matrix.h и уже из matrix.h и matrix.срр (где main) сделать matrix.lib? Кстати, а как делать библиотеку в Вижуал Студио 2005? Это сообщение отредактировал(а) yorgan - 8.6.2008, 21:06 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |