Клас DistSign має два конструктори, таких самих, як і клас Distance. Перший не має аргументів, у другого два або три аргументи. Третій, необов’язковий, аргумент другого конструктора – це змінна sign, що приймає значення pos або neg. Ці конструктори дозволяють нам визначити об’єкти типу DistSign різними способами.
Обидва конструктори в класі DistSign викликає відповідні конструктори з класу Distance для встановлення значень футів і дюймів. Вони також встановлюють значення поля sign. Конструктор без аргументів завжди встановлює значення поля sign рівним pos. Другий конструктор встановлює значення поля sign як pos, якщо воно не визначене.
Аргументи ft і in, що передаються з функції main() другому конструктору класу DistSign, просто передаються конструктору класу Distance.
Методи класу Distance
Додавання поля sign в клас Distance має значення для обох його методів. Метод getdist() класу DistSign повинен послати запит користувачу про знак інтервалу. Метод showdist() повинен вивести знак інтервалу. Ці методи викликають відповідні методи з класу Distance
Distance::getdist();
Distance::showdist();
Таким чином, ми не дублюємо код, а викликаємо підходящі вже готові методи. Це повністю співпадає з загальною концепцією С++ і принципом повторного використання коду.