Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
41<br />
Число байтов, выделяемое массиву при инициализации, определяется<br />
как произведение размера типа и числа членов. Для резервирования и освобождения<br />
этой памяти целесообразно использовать выражения<br />
Пример:<br />
имяМассива = new Тип [ Размер ]…;<br />
delete [ ] имяМассива;<br />
void Arrays2 () {<br />
AnsiString *whos;<br />
whos = new AnsiString[4];<br />
whos[0] = MyForm–>Edit1–>Text;<br />
whos[1] = "Mr. " + whos[0];<br />
whos[2] = "Dr. " + whos[0];<br />
whos[3] = *(whos + 1);<br />
MyForm–>RichEdit1–>Text =<br />
whos[0] + '\n' + whos[1] +'\n' + whos[2] + '\n' + whos[3];<br />
delete [] whos;<br />
}<br />
Имя каждого чле<strong>на</strong> массива состоит из имени массива и индексов в<br />
квадратных скобках. Программа обрабатывает многомерные массивы, <strong>на</strong>чи<strong>на</strong>я<br />
с членов, отмеченных крайними справа индексами. Имя массива указывает<br />
<strong>на</strong> адрес его нулевого чле<strong>на</strong>. Так как <strong>на</strong>чальный адрес массива уста<strong>на</strong>вливается<br />
автоматически в момент инициализации, он не может быть переопределен<br />
пользователем и, следовательно, име<strong>на</strong> массивов нельзя присваивать<br />
друг другу. Копирование массивов выполняется почленно, в том числе с помощью<br />
специальных функций.<br />
Массив передается в функцию только по ссылке <strong>на</strong> свой адрес. При передаче<br />
массива в функцию в качестве аргумента указывается имя массива, а<br />
при определении функции с многомерным массивом параметром задается<br />
имя массива и все размеры, кроме первого:<br />
void F1 () { AnsiString x[3]; F2 (x); ShowMessage (x[0] + ‘ ‘ + x[1]); }<br />
void F2 (AnsiString y[3]) { y[0] = “Привет”; *(y+1) = “Салют”; }<br />
void F3 () {<br />
int x[2][2]; F4 (x); ShowMessage (IntToStr (x[0][0]) + ‘ ‘ + IntToStr (x[0][1]));<br />
}<br />
void F4 (int y[][2]) { y[0][0] = 1; y[0][1] = 2; }