Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод указ к лабораторным работам ООП 3 семест...doc
Скачиваний:
5
Добавлен:
13.11.2019
Размер:
22.34 Mб
Скачать

Фрагмент результатів виконання роботи

5.5 Контрольні запитання

  1. Яке призначення константних об’єктів?.

  2. Які методи доцільно означувати як константні?

  3. Які елементи даних класу доцільно означувати як константні?

  4. Які існують правила використання константних функцій?

  5. Чи можуть конструктори та деструктори бути константними? Поясніть свої твердження.

  6. Як ініціалізувати константні елементи даних?

  7. Яке призначення статичних елементів класу?

  8. Чи можна оголосити статичну функцію як const?

  9. Чи можливі посилання на покажчик this у тілі статичної функції?

  10. В якому місці програми статична змінна класу ініціалізується?

  11. Чи можна міняти значення статичної змінної?

Перевантаження операцій та функцій. Дружні функції Діаграми класів, станів і переходів Лабораторна робота 6

Мета роботи: вивчити особливості використання операторних функцій. Скласти програму, включивши до інтерфейсу класу операторні функції для переозначення арифметичних операцій, перетворення типів, виведення та введення об’єктів..

6.1 Теоретичні відомості

Дивись лекції

Розглянемо арифметичні операції.

//клас комплексних чисел у алгебричный формы

class complex{

double re, im;

public:

complex (double r=0,double i=0):re(r),im(i){};

complex (const complex& c):re(c.re),im(c.im){};

complex operator+ ( const complex&) const;

complex& operator+= ( const complex&);

double real() const {return re;};

double imag() const {return im;};

friend complex operator==( const complex& a, const complex& b);

friend ostream& operator<<(ostream &os, const complex& a);

};

//клас комплексних чисел у тригонометрічній формі

class Tcomplex

{

friend class complex;

double _rho, _phi;

public:

Tcomplex (double r=0,double a=0): _rho(r),_phi(a){};

operator complex ();

Tcomplex operator*(const Tcomplex&) const;

Tcomplex operator*=(const Tcomplex&);

double rho() const { return _rho;}

double phi() const { return _phi; }

};

//реалізації класу complex

complex& complex::operator+= (double a)

{

re += a;

return *this;

}

complex complex:: operator+ (const complex& a)const

{

complex res = *this;

return res+=a;

}

complex operator+(const complex& a, const complex& b)

{

complex res=a;

return res+=b;

}

complex operator==( const complex& a, const complex& b)

{

return (a.re()==b.re()) && (a.im()==b.im());

}

ostream& operator<<(ostream &os, const complex& a)

{

os<<"re="<<a.re()<<" im="<<a.im()<<endl;

return os;

}

//реалізації класу Tcomplex

Tcomplex::operator complex()

{

complex res(_rho*cos(_phi),_rho*sin(_phi));

return res;

}

6.2 Програма роботи

  1. Доповнити інтерфейси та реалізації класів операторними функціями, що перевантажують стандартні операції для застосування їх до об’єктів. Перевантажити операції << (виведення на консоль) та >> (введення з консолі), застосувавши ці операції для введення та виведення об’єктів.

  2. Доповнити інтерфейси та реалізації класів дружніми функціями, що не є членами класу та реалізують прямий доступ до закритих елементів даних класу. В якості дружніх функцій слід використовувати операторні функції перевантаження введення та виведення об’єктів.

  3. Визначити можливість застосувати до об’єктів операції відношення, арифметичні, інкременту, декременту, індексування тощо, перевантаживши їх відповідними операторними функціями.

  4. Подати приклад перевантаження операторів new та delete

  5. Протестувати програму, під час роботи якої слід виконати такі дії:

  • застосувати перевантажені оператори new та delete для створення та знищення деяких об’єктів;

  • застосувати перевантажені операції введення та виведення потоком для зображення на екрані станів деяких об’єктів;

  • застосувати перевантажені операції відношення, арифметичні, інкременту, декременту, індексування тощо для реалізації арифметичних та інших дій над об’єктами;

  • реалізувати сценарій тестування згідно з діаграмами діяльності об’єктів;