Таке повідомлення викликає якусь дію, реакцію об'єкта. Можемо вважати, що звертання до звичайного поля даних класу також є елементарним повідомленням (без параметрів):
Ім’я_класу.ім’я_поля.
За такого підходу ООП-програма є послідовністю виразів, у яких об'єктам передаються деякі повідомлення.
Інколи зручно розміщувати формальні описи класу в одному файлі, а реалізації функцій-членів – в іншому. Підключаючи файли, що містять різні реалізації функцій-членів, можна досягти різної реакції класу на одне й те саме повідомлення.
7.4. Деякі особливостi C++
Коментарі
Як відомо, коментарі в базовій С задаються за допомогою комбінації символів /*–*/:
/*текст коментаря*/.
У С++ для задання коментарів може використовуватись подвійний слеш: //текст коментаря.
Подвійний слеш ставиться на початку кожного рядка, який буде коментарем. У кінці коментаря (коментованого рядка) ставиться символ переведення рядка. Усередині тексту коментаря допускаються будь-які символи (включаючи //).
|
|
Прототипи функцій
Прототип функції – це ім'я функції та її сигнатура (список типів параметрів):
returnType functionName (type1 par1, type2 par2,..., typeN parN);
Як відомо, в ANSI С функцію можна оголошувати без сигнатури:
int f();
При цьому компілятор не перевіряє відповiдність типів і кількості параметрів при виклику функції. Якщо при виклику функції параметри не відповідають типам (напр., розміщені не в тому порядку) чи вказана невірна їх кількість, то компілятор не помітить помилки. Вона може виявитись на етапі виконання програми. Тому в С++ рекомендується використовувати повні прототипи функцій при оголошенні. Якщо, наприклад, у С функція f оголошується так (старий стиль):
void f();
то в С++:
void f(void);
При використанні старого стилю оголошення функцій С++ компілятор буде видавати попередження. Тому при компілюванні файла, де використовуються фрагменти з ANSI C, необхідно встановлювати відповідну опцію компіляції.
Операція розширення області видимості
Операція розширення області видимості синтаксично позначається як подвійна двокрапка (::).
У С++ використовується у двох основних випадках:
а) для доступу до змінних, які невидимі в даній області видимості;
б) при визначенні функцій-членів класу за межами формального опису класу.
Розглянемо детальніше випадок а). Нехай ми маємо такий фрагмент програми:
#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