С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 10.12.2017
Сообщений: 48

Объект класса является массивом

18.08.2020, 11:23. Показов 657. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, захотелось мне написать свой класс вектора, только не понимаю как это можно реализовать. То есть как сделать так, чтобы объект созданного класса Dynamic_array являлся массивом?(Ну, наверное никак, ведь объекты будут иметь тип Dynamic_array и совсем не будут массивами?). Хочется, чтобы результат выглядел как-то так:

C++
1
Dynamic_array<TYPE> arr(/*параметры конструктора*/);
То есть чтобы arr представлял из себя выделенную область памяти ну и чтоб для каждого объекта Dynamic_array можно было хранить в отдельных переменных капасити, размер и т д. Ну и вот вопрос возник, как средствами языка реализовать подобную штуку, буду благодарен за помощь, где и что мне нужно почитать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.08.2020, 11:23
Ответы с готовыми решениями:

как узнать,является данный объект класса А1 наследником класса А2
Всем привет)есть классы S, A1, A2, B1, B2. Иерархия наследования следующая S - Является родителем для всех классов и он имеет...

Объект класса string не является однозначным
Вот ошибка: Ошибка 1 error C2872: left: неоднозначный символ c:\users\м\desktop\documents\visual studio 2013\projects\млита\млита\метод...

Компилятор считает объект l-value, но объект таковым не является
итак есть базовый абстрактный класс Дерево, есть два его наследника Плодовое Дерево и Лесное Дерево. Также существует класс Контейнер...

15
 Аватар для FFPowerMan
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,240
18.08.2020, 11:29
Заводишь указатель типа TYPE
C++
1
TYPE* Ptr;
В конструкторе создаешь массив оператором new
C++
1
Ptr = new TYPE[N];
В деструкторе высвобождаешь память
C++
1
delete[] Ptr;
1
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
18.08.2020, 11:33
Вы знакомы с placement new? Если нет, то сначала стоит разобраться с оным.
1
1 / 1 / 0
Регистрация: 10.12.2017
Сообщений: 48
18.08.2020, 11:37  [ТС]
А можно чуточку подробнее? Дело в том, что я вообще не знаю как создать подобную конструкцию
Code
1
Dynamic_array<TYPE> arr(/*параметры конструктора*/);
То есть чтобы я мог указывать какие-то параметры в угловых скобках и подобное. Можете сказать как это называется, сказать какие-то общие термины, чтобы я мог это как-то загуглить?
0
 Аватар для Nishen
1357 / 856 / 365
Регистрация: 26.02.2015
Сообщений: 3,813
18.08.2020, 11:38
Шаблон это называется. Можешь поискать "C++ шаблоны"
1
1 / 1 / 0
Регистрация: 10.12.2017
Сообщений: 48
18.08.2020, 11:38  [ТС]
Да, с тем как просто в мейне выделить область памяти и написать функции для работы с ней я знаю, меня интересует именно как сделать так, чтобы мой массив являлся объектом класса(?) или даже не знаю как верно выразиться
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
18.08.2020, 11:38
smurf19458, это шаблоны. Если вы совсем ими не умеете пользоваться, то стоит сначала основательно их изучить, прежде чем писать свой вектор.

P.S. ИМХО, вектор это самый сложный для реализации контейнер.
1
1 / 1 / 0
Регистрация: 10.12.2017
Сообщений: 48
18.08.2020, 11:41  [ТС]
спасибо
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
18.08.2020, 11:42
Цитата Сообщение от smurf19458 Посмотреть сообщение
То есть как сделать так, чтобы объект созданного класса Dynamic_array являлся массивом?
Просто переопредели у него оператор []
1
 Аватар для Annemesski
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,682
18.08.2020, 17:35
Croessmah, сложнее std::map ?
0
18.08.2020, 17:50

Не по теме:

Annemesski, я, вроде бы, написал, что он самый сложный.

0
18.08.2020, 17:52

Не по теме:

Croessmah,

я, вроде бы, написал...
я не поверил....

0
18.08.2020, 18:03

Не по теме:

Annemesski, а со второго раза поверил? )))

0
18.08.2020, 18:07

Не по теме:

Croessmah, нед )))

0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
18.08.2020, 18:23
Цитата Сообщение от Croessmah Посмотреть сообщение
P.S. ИМХО, вектор это самый сложный для реализации контейнер.
А что в нём такого сложного?
0
18.08.2020, 18:34

Не по теме:

Цитата Сообщение от oleg-m1973 Посмотреть сообщение
А что в нём такого сложного?
Остальные проще.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.08.2020, 18:34
Помогаю со студенческими работами здесь

Создать объект производного класса с передачей параметров в конструктор базового класса
Доброго времени суток! Если не затруднит, утолите мой интерес, пожалуйста! Есть базовый и производный классы с атрибутами a, b - у...

Можно ли создать объект класса с таким же именем как у самого класса?
Можно ли создать объект класса с таким же именем как у самого класса? Ну или как то обойти эту проблему?

Почему объект производного класса не видит префиксный оператор из базового класса?
Короче создал я базовый класс с перегруженным префиксным оператором ++. Потом чтоб его затюнинговать, сделал ему производный класс с...

Как сложить объект базового класса с объектом производного(наследуемого класса)
Как умножить объект базового класса с объектом производного(наследуемого класса): ozenka - объект базового класса, а ves- производного ...

Использование в качестве поля класса указатель на объект другого класса
Ошибка в названии - &quot;указателЯ&quot; Вот, пытаюсь освоить ООП (пока только учусь): создаю класс person (человек) и car (модель машины). ...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru