Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекцій.doc
Скачиваний:
15
Добавлен:
03.11.2018
Размер:
1.12 Mб
Скачать

1.1 Коментарі.

Як відомо, коментарі в базовому С задаються за допомогою комбінації символів /* - */ наступним способом:

/* текст коментаря */.

В С++ для задання коментарів може використовуватись і подвійний слеш:

// текст коментаря

Подвійний слеш ставиться на початку кожного рядка, який буде коментарем. В кінці коментаря (закоментованого рядка) ставиться символ переведення рядка. Всередині тексту коментаря допускаються будь-які символи (включаючи //).

1.2 Прототипи функцій.

Прототип функцiї - це ім’я функції та її сигнатура(список типів параметрів):

returnType functionName (type1 par1,type2 par2,...,typeN parN);

Як відомо, в ANSI С функцію можна оголошувати без сигнатури:

int f();

При цьому компiлятор не перевiряє вiдповiднiсть типiв параметрів, кiлькiсть параметрiв при виклику функції. Якщо при виклику функції параметри не відповідають типам (наприклад, розміщені не в тому порядку) чи вказана невірна їх кількість, то компілятор не помітить помилки. Вона може проявитись на етапі виконання програми. Тому в С++ рекомендується використовувати повні прототипи функцiй при оголошенні. Якщо, наприклад, в “старому стилі” функція printf оголошується так:

void printf();

то в С++:

void printf(void);

При використанні старого стилю оголошення функцій на С++ компілятор буде видавати відповідні попередження. Тому при компілюванні файлу, де використовуються фрагменти з ANSI C, необхідно встановлювати відповідну обцію компіляції.

1.3 Операція розширення області видимості.

Синтаксично позначається як подвійна двокрапка :: . В С++

використовується в двох основних випадках:

а) для доступу до змiнних, якi невидимi в данiй областi видимостi;

б) при визначеннi функцiй - членiв класу за межами формального опису класу.

Розглянемо ситуацію а) ( б) буде розглянуто пізніше) .

Нехай маємо наступний фрагмент програми:

#include <stdio.h>

float r=2.6;

int increment (int k)

{int r=k+16;

printf("в функцiї increment r=%d\n",r);

printf("значення ззовнi increment r=%0.2f\n",::r);

return r;

}

void main (void)

{int r=increment(20);

printf("в функцiї main r=%d\n",r);

printf("значення ззовнi main r =%0.2f\n",::r);

}

Результати роботи програми:

в функцiї increment r= 36

значення ззовнi increment r=2.60

в функцiї main r= 36

значення ззовнi main r =2.60