5.5.8 Объекты Переменного Размера

5.5.8 Объекты Переменного Размера

Когда пользователь берет управление распределением и овобождением памяти, он может конструировать объекты размеры, которых во время компиляции недетерминирован. В предыдущих примерах вмещающие (или контейнерные – перев.) классы vector, stack, intset и table реализовывались как структуры доступа фиксированного размера, содержащие указатели на реальную пмять. Это подразумевает, что для создания таких объектов в свободной памяти необходимо две операции по выделению памяти, и что любое обращение к хранимой информации будет содержать дополнительную косвенную адресацию. Например:

class char_stack (* int size; char* top; char* s; public: char_stack(int sz) (* top=s=new char[size=sz]; *) ~char_stack() (* delete s; *) // деструктор void push(char c) (* *top++ = c; *) char pop() (* return *–top; *) *);

Если каждый объект класса размещается в свободной памти, это делать не нужно. Вот другой вариант:

class char_stack (* int size; char* top; char s[1]; public: char_stack(int sz); void push(char c) (* *top++ = c; *) char pop() (* return *–top; *) *);

char_stack::char_stack(int sz) (* if (this) error(«стек не в свободной памяти»); if (sz « 1) error(„размер стека « 1“); this = (char_stack*) new char[sizeof(char_stack)+sz-1]; size = sz; top = s; *)

Заметьте, что деструктор больше не нужен, поскольку пмять, которую использует char_stack, может освободить delete без всякого содействия со стороны программиста.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Объекты OS/400 и системные объекты MI

Из книги автора

Объекты OS/400 и системные объекты MI Несколько типов объектов имеются и в OS/400, и в MI. Типы объектов OS/400 перечислены в таблице 5.1. Для сравнения, в таблице 5.2 приведены системные объекты MI. Помните, что в каждой новой версии AS/400 добавляются новые функции и даже новые объекты.


Анализ цепей переменного тока

Из книги автора

Анализ цепей переменного тока Пример для цепи переменного тока показывает некоторые свойства установившегося режима цепи при гармоническом воздействии.На рис. 0.4 показана схема с источником питания 100 В при частоте 100 Гц. Можно считать, что во входном файле приведено


Максимальная передача мощности в цепях переменного тока

Из книги автора

Максимальная передача мощности в цепях переменного тока В цепях постоянного тока максимальная мощность, выделяемая в нагрузке, достигается при RL=RS. В цепях переменного тока передача максимальной мощности достигается в том случае, когда значения полного сопротивления


Частотный анализ в последовательно-параллельных цепях переменного тока

Из книги автора

Частотный анализ в последовательно-параллельных цепях переменного тока На рис. 2.13 приведена еще одна цепь на переменном токе. Значения параметров: V=100?0° В; R1=10 Ом; R2=10 Ом, L=100 мГн и С=10 мкФ. Предположим, что резонансная частота неизвестна, и ее необходимо предварительно


Определение полного входного сопротивления в цепях переменного тока

Из книги автора

Определение полного входного сопротивления в цепях переменного тока Рассмотрим «черный ящик», содержащий цепь с неизвестным полным сопротивлением, показанный на рис. 2.16. С помощью команды .PRINT вы можете вывести и V(I), и I(R). Однако эта команда не позволяет вывести значение


Цепи переменного тока с несколькими источниками

Из книги автора

Цепи переменного тока с несколькими источниками Когда в схеме переменного тока имеется более одного источника питания, вы должны определить относительные фазовые углы источников. Обратите внимание, что в каждой команде, описывающей источник напряжения в примере на рис.


Трехфазные цепи переменного тока

Из книги автора

Трехфазные цепи переменного тока Трехфазные схемы переменного тока могут быть рассчитаны по той же методике, что и однофазные, если нагрузка в каждой фазе одинакова (симметричная нагрузка). Когда нагрузка несимметрична, решение становится более сложным. В этом примере


Z -параметры для цепей переменного тока

Из книги автора

Z-параметры для цепей переменного тока Z-параметры для схемы переменного тока, подобной показанной на рис. 12.14, могут быть найдены с использованием PSpice. Мы найдем параметры холостого хода для этой схемы при частоте f=500 Гц. Удобно использовать источник тока в 1 А с нулевым


Цепи переменного тока

Из книги автора

Цепи переменного тока Чтобы анализировать цепи переменного тока, которые мы рассматривали в главе 2 (синусоидальный ток в установившемся режиме), нам необходим источник питания VAC из библиотеки источников и компоненты R, L и С из библиотеки аналоговых компонентов.


Цепи переменного тока с несколькими источниками

Из книги автора

Цепи переменного тока с несколькими источниками Проанализируем теперь с помощью Capture цепи с несколькими источниками переменного напряжения из главы 2. Создайте в Capture схему, показанную на рис. 14.35, с именем multisrc. Используйте VAC для каждого источника напряжения и установите


Временные диаграммы для цепей переменного тока со многими источниками гармонического сигнала

Из книги автора

Временные диаграммы для цепей переменного тока со многими источниками гармонического сигнала Решим теперь предыдущую задачу, применяя компоненты VSIN вместо VAC для источников напряжения V1, V2 и V3. При этом проводится исследование переходного процесса во временной области.


Урок 3 Анализ цепи переменного тока

Из книги автора

Урок 3 Анализ цепи переменного тока Изучив материал этого урока, вы научитесь использовать программу PSPICE для расчета линейных цепей переменного тока. Вы сможете моделировать работу электросхем, состоящих из резисторов, катушек и конденсаторов (RLC-схем), находящихся в


5. Целочисленные, переменного типа и переменные данных

Из книги автора

5. Целочисленные, переменного типа и переменные данных ByteБайтовый тип нов в Visual Basic и используется для хранения целых чисел от 0 до 255. Его применение дает возможность значительно экономить оперативную память и сократить размер массивов по сравнению с предыдущими


Объекты DataSet с множеством таблиц и объекты DataRelation

Из книги автора

Объекты DataSet с множеством таблиц и объекты DataRelation До этого момента во всех примерах данной главы объекты DataSet содержали по одному объекту DataTable. Однако вся мощь несвязного уровня ADO.NET проявляется тогда, когда DataSet содержит множество объектов DataTable. В этом случае вы можете


Редактирование размера

Из книги автора

Редактирование размера Команда DIMEDIT обеспечивает редактирование размера и вызывается щелчком на пиктограмме Dimension Edit на панели инструментов Dimension.Запросы команды


Обновление размера

Из книги автора

Обновление размера Команда -DIMSTYLE с ключом apply обеспечивает обновление размера и вызывается из падающего меню Dimension ? Update или щелчком на пиктограмме Dimension Update на панели инструментов