Программирование >>  Программирование на языке c++ 

1 ... 16 17 18 [ 19 ] 20 21 22 ... 159


for(i=0;i<3;l++) массив из 4 элементов

for(int j=0;j<4;j++) выполнение каких-то array[i][j] = i*j; действий for(i=0;i<3;i+-b)

for(int j 0;j<4;j-f-f-) rout << array[i][j] ; вывод значений

cout << ndl; результат: 000001230246 for(i=0;i<3;i-f-t-) удаление всех одномер-

delete[] array[i]; ных массивов delete[] array; удаление массива указателей на одномерные массивы

2.5. Другие новые конструкции языка С++

Выше уже говорилось о том, что одна из основных целей разработки язг>1ка С++ заключалась в том, чтобы этот язык был лучше языка (. И этом параграфе рассматриваются новые конструкции языка C-I-+, которые могут быть использованы при наиисаиии как объектно-ориентированных, так и процедурных И1юграмм. При первом прочтении книги этот параграф можно опустить и возвратиться к нему, когда возникнут неясное! и при чтении последующих глав.

Комменгярии в программах можно записывать в двух формах. Перпая из них такая же, как в языке С:

class А {........... }; /* это комментарий */

Вторая форма начинается символами , которые можно записать в любой позиции строки, и продолжается до конца этой строки, например:

class А {...........}; это комментарий

В отличие от языка С описания и объявления в языке С-и-можно помещать не только в начале, но в любом месте программы:

void main(vojd) { int а=5;



3++;

int b=3+a; a=b*2; int c; c=a+b;

cout << с << endl; здесь манипулятор endl

это то же,что и \п (в результате курсор перемещается в начало следующей строки)

Объявление можно поместить и в цикл, например:

for (int 1=0;1<10;1++) {..........}

Однако здесь надо проявлять осторожность, поскольку область действия объявления ограничивается блоком, в котором описан цикл. Рассмотрим пример:

for (int i=0;i<10;i-H-) { область А

......................... область А

for (int j=5;j>0;j~){.....} область В внутри

области А

......................... область А

} область А 1=7; нет ошибки, поскольку это выражение, как и внешний цикл, находится в области А (т. е. переменная i уже объявлена) j=3; ошибка, поскольку переменная j объявлена во вложенной области В, а используется во внешней области А (т. е. здесь j рассматривается как необъявленная переменная) При описании переменных в языке С можно выполнять их инициализацию, т. е. присваивание некоторых начальных значений:

int а=10, Ь=20;

При этом в языке С есть некоторые ограничения на инициализацию статических объектов (т. е. специфицируемых как



Static). Язык С++ снимает эти ограничения. В результате инициализирующее значение для статического объекта может быть получено из любого выражения, содержащего константы и ранее описанные переменные и функции.

Модификатор const в языке С++ делает соответствующие объекты скрытыми и недоступными для внещней компоновки. Значение указателя на объект типа const нельзя присвоить указателю на объект, ие имеющему модификатора const, например:

char const *s1 = Hello ; char *s2 = s1; ошибка

Если некоторый новый объект описан с модификатором const, то для него можно вызвать только компоненты-функции, имеющие модификатор const (см. § 3.3 для дополнительных пояснений).

Язык С++ вводит новый тип, называемый ссылкой (reference), который по смыслу тесно связан с указателями. Ссылка вводит другое имя или псевдоним (alias) для объекта. В результате можно передать ссылку (псевдоним) в функцию в виде параметра. Появляется возможность обращения к одному и тому же значению с помощью двух имен: оригинального имени в функции, которая вызывает другую функцию, и второго имени (ссылки) в функции, которая вызвана. После заверщения функции, которая вызвана, второе имя (ссылка) уничтожается, однако функция, из которой производился вызов, может использовать первое имя (рис. 2.4).

Таким образом, в языке С++ аргументы можно передать в функцию тремя способами: по значению

void fun(int); void f(void) { int i=5;

fun(i); передается значение i ............... }

через указатель void fun(int*); void f(void) { int i=5;



1 ... 16 17 18 [ 19 ] 20 21 22 ... 159

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика