Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
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 />
структуры не входят в состав типов данных традиционных языков програм-