|
Alvin Seville
|
||||||
Класс динамического массива. Почему не компилируется?12.02.2019, 03:51. Показов 1471. Ответов 18
Метки нет (Все метки)
0
|
||||||
| 12.02.2019, 03:51 | |
|
Ответы с готовыми решениями:
18
Создайте класс динамического массива, в котором реализована проверка выхода за границы массива Создайте класс динамического массива, в котором реализована проверка выхода за границы массива
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 12.02.2019, 05:41 | |
|
тип dynamic_array_ptr_t - полное отсутствие всякого присутсвия. Все остальные ошибки следствие этой. по всей видимости там везде где dynamic_array_ptr_t должен быть dynamic_array_t.
1
|
|
|
Alvin Seville
|
|
| 12.02.2019, 10:10 [ТС] | |
|
Fulcrum_013, погоди, так мне же нужен указатель на массив, что есть dynamic_array_ptr_t.
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 12.02.2019, 17:31 | |
|
Соколиный глаз,
1) Шаблон dynamic_array_ptr_t не объявлен в месте использования. Видимо нужно перенести его выше. И предварительно объявление dynamic_array_t тоже. 2) Непонятный default в шаблонной функции fill (это намек на то, что этого тут быть не может). 3) Начинать идентификаторы с двух нижних подчеркиваний - искать приключений на пятую точку. Не делайте так. 4) Модифицировать временный объект встроенного типа (ш. функция reverse) не допускается. 5) malloc не создает объекты. Ваш массив будет работать только для тривиальных типов. 6) деструктор (и констр. копирования, оператор присваивания) потеряли. Добавлено через 3 минуты Соколиный глаз, вообще данный код классический пример оверинжиниринга (уж не обижайтесь, кто еще вам правду скажет?). Т.е. сделаны простые вещи необоснованно сложными путями. А потом у людей складывается впечатление, будто все программирование на С++ такое.
1
|
|
|
Alvin Seville
|
|
| 12.02.2019, 19:05 [ТС] | |
|
DrOffset,
2) Ну, значение по умолчанию для __t хотел взять. 3) Хорошо, понял. 4) А как тогда? 5) А если надо для произвольных? 6) Да, спасибо, допишу. Это не C++ виноват, а я, ибо нет опыта программирования на нем. Пусть те, кто читают эту тему эту строчку прочитают. Добавлено через 42 минуты И собственно почему я делал класс динамического массива - мне требуется динамические массивы как в C#.
0
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 12.02.2019, 20:36 | |
|
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||||||||||||||
| 12.02.2019, 20:41 | |||||||||||||||
1
|
|||||||||||||||
|
Alvin Seville
|
|
| 12.02.2019, 23:50 [ТС] | |
|
Fulcrum_013, я отказался от array<T, Size> и от vector<T>, так как мне не нравится, что там открыта внутренняя реализация. Наверное, странная причина, но я к такому не привык. В C# такого не встречал нигде. А вторая причина - array<T, Size> нельзя ресайзить. А у вектора ресайз автоматический. Хотя, конечно, можно и самому им управлять, но все же.
Добавлено через 4 минуты DrOffset, а вообще, скажите, аллокатор требуется делать для каждого контейнера?
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||||
| 13.02.2019, 00:30 | ||||
0
|
||||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 13.02.2019, 00:33 | |||
|
Добавлено через 2 минуты
1
|
|||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 13.02.2019, 00:33 | |
|
Соколиный глаз, Попытка перетащить привычки из языка с другой парадигмой без тщательного осмысления может привести к печальным последствиям
Это все равно, что при переходе, например, с паскаля пытаться дефайнить фигурные скобки на begin\end, потому что не привык. В общем, при изучении нового языка - задача понять его идеологию, а не насаждать там чужую. Иначе, самообман какой-то получается.
1
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||
| 13.02.2019, 05:27 | |||||||||
|
Добавлено через 1 час 16 минут
Добавлено через 3 часа 34 минуты
1
|
|||||||||
|
Alvin Seville
|
||||||||
| 13.02.2019, 07:01 [ТС] | ||||||||
|
Добавлено через 8 минут
0
|
||||||||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||
| 13.02.2019, 07:30 | ||||||||
1
|
||||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 13.02.2019, 14:21 | |
|
Соколиный глаз, Все хотел спросить. Зачем
static функции? Они же ведут себя как функции-члены у вас. Так в чем замысел этого очевидного усложнения?Также хотелось бы получить ответ по поводу открытости внутренней реализации у стандартных контейнеров.
0
|
|
|
Alvin Seville
|
||
| 13.02.2019, 22:15 [ТС] | ||
|
0
|
||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 13.02.2019, 23:29 | ||||||
|
Соколиный глаз, В векторе все в привате.
в либе которая к вижуал студии 17-ой идет в строках 604-605
а в public они у вспомогательного класса _Vector_val экземпляр которого вектор держит в private
0
|
||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 13.02.2019, 23:41 | |
|
Соколиный глаз, По поводу array - у этого есть техническое обоснование, а у остальных контейнеров ничего подобного нет. Все методы, начинающиеся с подчеркивания, закрыты для использования. Если вы судите о "доступности" по выпадающему списку автодополнения в IDE, то это проблема движка автодополнения, который добавляет туда лишнее, а не контейнера.
В любом случае вы можете сделать адаптер на базе стандартного контейнера и спрятать все, что вам нужно спрятать. И все-таки в чем смысл static в вашем коде? Ничего страшного нет в том, чтобы в целях обучения написать свой контейнер, но нужно понимать, что далеко не сразу получится его сделать хотя бы таким же безопасным, как стандартный.
1
|
|
|
Alvin Seville
|
|
| 14.02.2019, 03:19 [ТС] | |
|
DrOffset, я хотел сделать статические методы... Как в C# у класса Array.
0
|
|
| 14.02.2019, 03:19 | |
|
Помогаю со студенческими работами здесь
19
Почему при создании динамического массива через new ячейки массива имеют значение -842150451? Класс динамического массива
Класс для двумерного динамического массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|