Для оператору «<<» перевантажена функція дозволяє записувати екземпляри класу у файл - friend ostream &operator<<( ostream &output, Figure &f ); У середині функції у файл через знак табуляції «\t» записуються значення полів класу. Функція повертає екземпляр потоку.
Для оператору «>>» перевантажена функція дозволяє зчитувати з однієї строки екземпляр класу - friend string &operator>>( string &line, Figure &f ); У середині функції за допомогою substr парсимо строку по черзі, використовуючи символ табуляції(\t) як роздільник. Отримані значення присвоюємо екземпляру класу, який був переданий як аргумент функції.
Функція-член класу Figure - show() виконує форматований вивід даних на екран, якщо параметр класу visible встановлений в true. Інакше замість даних о фігурі на екран буде виведено «invisible».
За допомогою функції-члену input() виконується наповнення класу даними, які будуть введені з клавіатури. При чому запис дробової частини дійсних чисел буде записуватися при розділенні цілої і дробової частини числа як символом «.», так символом «,», за допомогою фунції char* dotsToCommasChar(char *c, int N), яка замінює усі точки в рядку на коми та повертає цей рядок.
Функція-член класу Figure - hide() ставить параметр visible у значення false, який використовується при виводі фігури на екран.
Функція-член класу Figure - unHide() ставить параметр visible у значення true.
Функція-член класу Figure - rotateBy(float _angle) збільшує параметр angle фігури на передане значення _angle.
Функція-член класу Figure - moveBy(float x, float y) збільшує параметри centerX та centerY на передані значення x та y.
Функції-члени класу Figure: float getXCenter(),float getYCenter(), float getAngle(), float getScaleFactor() відповідно повертають значення полів centerX, centerY, angle, scaleFactor.
Для зручного використання класів Figure, Circle та Ellipse об’являємо клас Programm. У ролі захищеного члена класу виступає послідовний контейнер бібліотеки STL – deque, який зберігає показники на елементи класу Figure. За допомогою директиви typedef визначаємо синонім для типу колекції - typedef deque<Figure*> MyCollection. Та створюємо показник на екземпляр цієї коллекції - MyCollection* collection;