13.01.2015 Views

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

51<br />

При передаче в функцию в качестве аргументов могут использоваться<br />

как име<strong>на</strong> полей, так и указатели <strong>на</strong> адреса. Применение указателя в качестве<br />

з<strong>на</strong>чения аргумента избавляет от необходимости копирования в функцию<br />

всех данных, но в этом случае они остаются беззащитными перед изменениями<br />

в теле функции. Для устранения этой проблемы перед указателем<br />

можно помещать лексему const. Пример передачи данных структуры:<br />

struct x { int size, price; };<br />

void Change1 (x y) { y.size = y.price; }<br />

void Change2 (x *y) { y–>size = y–>price; }<br />

void Structures4 () {<br />

x y = {1, 2};<br />

Change1 (y);<br />

MyForm–>Edit1–>Text = y.size – y.price;<br />

Change2 (&y);<br />

MyForm–>Edit2–>Text = y.size – y.price;<br />

}<br />

Близкие к структурам по смыслу объединения (union) позволяют хранить<br />

в одной и той же области памяти з<strong>на</strong>чения переменных разных типов,<br />

поочередно заменяя одно другим. Размер памяти, занимаемой данными объединения,<br />

<strong>на</strong>з<strong>на</strong>чается в соответствии с тем из типов, который требует больше<br />

памяти. Их объявление и пример:<br />

union имяТипаОбъединения {объявлениеПолей} имяОбъединения<br />

[={списокЗ<strong>на</strong>чений}];<br />

void Unions () {<br />

union intDbl {int i; double x;} id = {70};<br />

MyForm–>Edit1–>Text = "Масса в граммах" + IntToStr (id.i);<br />

id.x = 0.07;<br />

MyForm–>Edit2–>Text = "Масса в килограммах" + FloatToStr (id.x);<br />

}<br />

Ди<strong>на</strong>мические структуры данных<br />

В отличие от составных типов, ди<strong>на</strong>мические структуры данных (dynamic<br />

data structure), или связные списки (linked list), изменяются в размере по<br />

мере заполнения и освобождения их от данных и обычно не требуют последовательного<br />

размещения элементов в памяти компьютера. Ди<strong>на</strong>мические<br />

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!