5 / 5 / 1
Регистрация: 09.09.2012
Сообщений: 227
|
|||||||||||
1 | |||||||||||
Дополнить класс динамическим массивом07.02.2013, 07:46. Показов 955. Ответов 3
Метки нет (Все метки)
Доброго всем времи суток!!!
Возникла проблема - создан класс "sequence" нужно дописать его так, чтобы он использовал динамический массив как private member переменную. Класс должен отличаться от написанного: - номер элементов, который может быть сохранён в "sequence" должен лимитироваться только количеством памяти поступной в свободном хранении (free store). При добавлении нового элемента размер массива данных должен автоматически увеличиваться. - Необходимо определить: copy конструктор, assignment operator и destructor. - Конструктор должен иметь default аргумент, который позволит пользователю установить первоначальную вместимость класса "sequence". - Необходима функция - resize -которая позволит пользователю четко установить ёмкость "sequence". Header file "sequence2":
Please, help!!!
0
|
07.02.2013, 07:46 | |
Ответы с готовыми решениями:
3
Класс с динамическим массивом Класс с содержащимся динамическим массивом Класс для работы с n-мерным динамическим массивом Создать класс для работы с двумерным динамическим массивом чисел |
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
07.02.2013, 11:48 | 2 |
1 измените функцию добавления элемента: если свободных мест нет - выделяйте новый кусок памяти имеющий размер на некое количество элементов больше чем текущий, копируйте туда содержимое текущего куска, удаляйте текущий кусок, изменяйте указатель на текущий кусок и размер на новые, добавляйте элемент
2 у вас вообще конструкторы пока не очень то и определены - не ясно откуда возьмется data - под него надо выделить память. в пустом конструкторе обнулить data. в конструкторе с параметром выделить кусок вмещающий указанное в качестве параметра кол-во элементов. в конструкторе копирования - выделить кусок размером с блок данных в копируемом объекте и скопировать туда data, заполнить остальные поля взяв их значение из копируемого объекта 3 во время присваивания - если принимающий кусок больше чем передаваемый - очищать его (сбрасывая счетчики) и копировать в него содержимое передаваемого куска, если меньше - удалять, выделять память размером с передаваемый кусок и копировать его 4 в деструкторе освобождать выделенную память 5 default аргумент у вас есть - DEFAULT_CAPACITY 6 что значит четко установить емкость? поджать data до фактического размера? тогда если data имеет хвост выделяйте память четкого размера, копируйте туда заполненную часть data, освобождайте data, обновляйте указатель на data новым куском, обновляйте другие поля
1
|
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
|
||||||
07.02.2013, 12:39 | 3 | |||||
Это пример из справочника по плохому стилю кода, что-ли? Плохо практически везде, поэтому не буду перечислять, а приведу сразу реализацию. По спецификации, в том же плохом стиле, хоть местами и не удержался, сделал по-лучше.
Компилил, не проверял -- рука не поднимается.
1
|
5 / 5 / 1
Регистрация: 09.09.2012
Сообщений: 227
|
|
07.02.2013, 22:08 [ТС] | 4 |
Спасибо за помошь!!!
Буду разбираться. Для меня тема Классов и ОПП авсолютно не понятны пока.
0
|
07.02.2013, 22:08 | |
07.02.2013, 22:08 | |
Помогаю со студенческими работами здесь
4
Проблема с динамическим массивом Странность с динамическим массивом Проблема с динамическим массивом Работа с динамическим массивом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |