Розглянемо, яким чином виконується програма 9.5. Об’єкти dist1 та dist3 створюються за допомогою конструктора без аргументів, а об’єкт dist2 – за допомогою конструктора, що приймає 2 аргументи, значення яких ініціалізують поля об’єкту dist2. Значення для ініціалізації об’єкту dist1 вводяться користувачем за допомогою методу getdist().
Величини, які ми хочемо додати, передаються в якості аргументів методу add_dist(). Синтаксис передачі об’єктів у функцію такий сам, як і для змінних стандартних типів: на місці аргумента вказується ім’я об’єкта. Оскільки add_dist() є методом класу Distance, він має доступ до будь-яких полів будь-якого об’єкту класу Distance, використовуючи операцію крапки (.), наприклад, dist1.inches чи dist2.feet.
Якщо уважно вивчити функцію add_dist(), побачимо ще кілька важливих деталей, що стосуються методу класу. Методу класу завжди наданий доступ до полів об’єкта, для якого він викликаний: об’єкт зв’язаний з методом операцією крапки (.). Однак насправді методу класу доступні й інші об’єкти. Якщо задатися питанням, до яких об’єктів має доступ метод add_dist(), то, подивившись на виклик
dist3.add_dist(dist1,dist2);
можна помітити, що, крім об’єкту dist3, з якого він викликаний, метод має доступ також до об’єктів dist1 та dist2, які є його аргументами. Можна розглядати об’єкт dist3 в якості псевдоаргументу функції add_dist: формально він не є аргументом, але функція має доступ до його полів. Сенс приведеного виклику можна сформулювати так: «виконати метод add_dist об’єкту dist3». Коли всередині функції проходить звертання до полів inches та feet, це означає, що насправді звертання проходить до полів dist3.inches та dist3.feet.
Функція не повертає значення: типом повернутого значення для неї є void. Результат автоматично присвоюється об’єкту dist3.
Підсумовуючи раніше сказане, ми можемо твердити, що кожен виклик методу класу обов’язково зв’язаний з конкретним об’єктом цього класу (за винятком виклику статичних функцій, які ми розглянемо пізніше). Метод може прямо звертатися за іменем до будь-яких закритих і відкритих членів цього об’єкту. Крім того, метод має непрямий (через операцію крапки) доступ до членів інших об’єктів свого класу: ці останні виступають в якості аргументів методу.