Досі ми завжди визначали методи класу всередині класу. Насправді це не обов’язково. В програмі 9.5 функція add_dist() визначена пізніше класу Distance(). Її код
void Distance::add_dist(Distance d2,Distance d3)
{
inches=d2.inches+d3.inches;
feet=0;
if(inches>=12.0)
{inches-=12.0;
feet++;}
feet+=d2.feet+d3.feet;
}
Заголовок функції містить новий для синтаксичний елемент:
void Distance::add_dist(Distance d2,Distance d3)
Перед заголовком функції стоїть ім’я класу Distance і символ :: Цей символ є знаком операції глобального дозволу. Така форма запису встановлює взаємозв’язок функції та класу, до якого відноситься ця функція. В даному випадку запис Distance::add_dist( ) означає, що функція add_dist() є методом класу Distance. Синтаксис подібних виразів проілюстрований на рисунку:

Операція дозволу