![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
PoloS |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 29.12.2006 Где: МО, г. Одинцово Репутация: нет Всего: 5 |
Всем добрый вечер!
Одно время увлекался программированием на С++. Сейчас по учебе нужно написать программу, пришлось доставать пыльные книжки с верхних полок. Но один вопрос не решился даже с книжками! Прошу вашей помощи. Идея такая: нужно реализовать класс матрицы элементов double произвольной размерности n x m. снабдить этот класс признаками встроенных типов (операторы + - * /, доступ к элементам name[i][j]). Решил сделать так: класс вектора, по сути обертка над динамическим массивом из double элементов.
Обратите внимание, что дефолтного конструктора у класса Vec нет, т.к. обязательный параметр - размер вектора. А класс матрицы хочу сделать как динамический массив обьектов класса Vec. Преследуется цель, что бы можно было использовать семантику mat[i][j] для доступа к элементу матрицы.
Проблема в том, что строчка p = new Vec(n)[m];. Так как правильно создавать динамический массив из объектов класса? Просьба, использование контейнеров STL не предлагать. Этот код будет использоваться в программе метода конечных элементов, где нужна высока производительность. Спасибо! |
||||
|
|||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
На сколько я помню линейную алгебру, там размер вектора не меняется. Поэтому есть смысл отказаться от параметризированного конструктора в пользу шаблона:
|
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
PoloS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 29.12.2006 Где: МО, г. Одинцово Репутация: нет Всего: 5 |
действительно, т.к. размер матриц и векторов известен на момент компиляции, то остановился на классах шаблонах. bsa, Спасибо за совет!
З.Ы. Программа учебная, не хочу прикручивать boost. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |