|
Программирование >> Программирование на языке c++
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;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |