Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 1
Регистрация: 26.03.2017
Сообщений: 30

Как в классе реализовать динамическую расширяемую строку?

07.04.2017, 20:44. Показов 987. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1)Когда учил динамические массивы, многое недопонял. Вот к примеру в учебных примерах зачастую дают пользователю самому назначить размерность массива. Но вот я не понял если я сделаю массив также как и в выше описанном примере, но напишу вместо переменной в квадратной скобке, назначенной пользователем напишу к примеру 300. Я думаю, что сначала выделится память под 300 элементов, а потом если элементов станет больше то память начнет динамически выделятся по мере необходимости, или как?
2)Как в классе реализовать динамическую строку?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.04.2017, 20:44
Ответы с готовыми решениями:

Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку?
Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? Когда я объявляю так: char* ch1=new char; и считываю её...

Как реализовать ввод с клавиатуры в динамическую память?
Я написал код программы, нахождение корней квадратного уравнения, где a, b, c находятся в динамической памяти. Вопрос, как записать...

Подскажите, как создать одномерную, динамическую строку типа char
Подскажите, как создать одномерную, динамическую строку типа char. И что бы символы вводились с клавиатуры)))

6
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
07.04.2017, 21:07
Цитата Сообщение от angrystrike Посмотреть сообщение
а потом если элементов станет больше то память начнет динамически выделятся по мере необходимости, или как?
Не начнёт. Сколько прописал (в квадратных скобках) - столько и будет. Если памяти не хватает, то выделяют новую. Есть классы с автоматическим управлением памятью (например, std::vector, std::string). В них автоматически происходит перевыделение памяти.
0
 Аватар для axela002
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
07.04.2017, 21:21
Цитата Сообщение от angrystrike Посмотреть сообщение
2)Как в классе реализовать динамическую строку?
В конструкторе выделяешь nамять, а в деструкторе освобождаешь nамять.
Т.е nри создании обьекта nамять выделится , nри уничтожении (т.е закончив работу с этим обьектом ) она освободится.

Ну или , что уже nосоветовали .
Цитата Сообщение от nd2 Посмотреть сообщение
например, std::vector, std::string). В них автоматически происходит перевыделение памяти.
0
1 / 1 / 1
Регистрация: 26.03.2017
Сообщений: 30
07.04.2017, 21:41  [ТС]
Можно поподробнее про то, что делать в конструкторе и деструкторе?
0
 Аватар для axela002
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
07.04.2017, 21:51
Цитата Сообщение от angrystrike Посмотреть сообщение
Можно поподробнее про то, что делать в конструкторе и деструкторе?
К nримеру , вот выделение (в конструкторе) и освобождение(в деструкторе) nамяти для одномерного массива.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Primer {
private: 
    int32_t *ptr;  // Указатель.
    int32_t sizeArray; // размер массива 
public:
    Primer(int32_t count) {  // Конструктор nринимает 1 nараметр  , размер массива.
        ptr = new int32_t *[count]; // Выделяем nамять nод массив.
        sizeArray = count; 
    }
 
 
    ~Primer() {
        delete[] ptr;
    }
 
 
};
1
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
07.04.2017, 21:55
Цитата Сообщение от axela002 Посмотреть сообщение
C++
1
ptr = new int32_t *[count]; // Выделяем nамять nод массив.
C++
1
ptr = new int32_t [count];
1
 Аватар для axela002
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
07.04.2017, 21:57
Цитата Сообщение от nd2 Посмотреть сообщение
1
ptr = new int32_t [count];
Да точно, nросто всегда работаю только с 2-я мерными массивами )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.04.2017, 21:57
Помогаю со студенческими работами здесь

Как в windows сделать динамическую библиотеку из файлов .cpp через командную строку ?
Здраствуйте, вопрос состоит в следующем, как у Виндовс через командную строку сделать динамеческую библиотеку из файлов .cpp. ...

Как реализовать динамическую таблицу средствами WPF?
Всем доброго дня. Возникла потребность сделать средствами WPF довольно сложную динамическую таблицу, на вроде такого. Я далеко не...

Как в crontab сделать динамическую строку?
привет. Мне необходимо каждый день копировать файл с сервака. Добавляю в крон команду 00 00 * * * scp...

Как создать динамически расширяемую матрицу?
Люди!!! Как сделать в Visual C++ так, чтобы изменить размер матрицы программно по ходу дела??? ПОМОГИТЕ!!!

Как реализовать интерфейс IComparable в индексируемом классе
Как реализовать интерфейс IComparable, если невозможно доступиться до индексируемых полей внутри самого индексируемого класса. ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru