Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Практична робота № 5. «Дослідження перевантаження операцій та операторів»
Мета: Оволодіти практичними навичками по розробці класів, що містять перевантажені операції.
Обладнання та програмне забезпечення: IBM PC сумісний ПК; операційна система Windows; середовище програмування Visual C++.
Порядок виконання.
У звіт входить текст програми і відповіді на контрольні запитання.
Контрольні запитання.
Теоретичні відомості
Мова С++
Опис перевантаження операцій:
<опис перевантаження операцій> ::=
<опис перевантаження унарної операції> |
<опис перевантаження бінарної операції>
<опис перевантаження унарної операції> ::= <позначка класу>
operator <позначка унарної операції> ( )
{<тіло перевантаженої унарної операції>}
<тіло перевантаженої унарної операції> ::= <тіло закритої
підпрограми, яке закінчується оператором return *this;>
<опис перевантаження бінарної операції> ::=
<позначка типу значення, що вироблюється>
operator <позначка бінарної операції> (<параметр> )
{<тіло перевантаженої операції>}
<тіло перевантаженої операції>::= <тіло закритої підпрограми>
<параметр> ::= <другий операнд перевантаженої бінарної операції>
Опис перевантаження оператора привласнення:
<опис перевантаження оператора привласнення>::=
<позначка класу>& operator = (<пар. const>)
{<тіло перевантаженого оператора>}
<пар. const> ::= const <позначка класу> & <ідентифікатор>
<тіло перевантаженого оператора> ::= <тіло закритої підпрограми,
яке закінчується оператором return *this;>
Методичні рекомендації
Памятайте, що якщо при використанні бінарної операції або оператора з обєктом вашого класу тип першого операнда не збігається з типом вашого класу, то опис перевантаження такої операції або оператора необхідно робити як дружню функцію. У цьому випадку обидва операнди передаються в списку параметрів.
Якщо перевантаження унарної операції описується як метод класу, то в нього відсутній список параметрів, тому що єдиний операнд цієї операції є неявним аргументом (*this).
Варіанти завдань.
№ варіанту |
Клас |
Перевантажувані операції |
№ варіанту |
Клас |
Перевантажувані операції |
|
|
англійських мір довжин |
-=,*, > |
|
англійських мір довжин |
<, *=, / |
|
|
англійських мір ваги (фунти, унції) |
+,*=,> |
|
англійських мір ваги (фунти, унції) |
-,+=,= = |
|
|
комплексних чисел |
+,= =,-= |
|
комплексних чисел |
-, <, += |
|
|
вектор |
+, скалярний добуток |
|
вектор |
-, скалярний добуток |
|
|
правильні дроби |
+, *=, > |
|
правильні дроби |
-, += ,< |
|
|
англійських мір довжин |
/=, -, < |
|
англійських мір довжин |
>, -=,* |
|
|
англійських мір ваги (фунти, унції) |
*,+=,> |
|
англійських мір ваги (фунти, унції) |
-,*=, <, |
|
|
комплексних чисел |
-, *=, < |
|
комплексних чисел |
+, /=, > |
|
|
вектор |
добуток на число, скалярний добуток |
|
правильні дроби |
+, /=, > |
|
|
правильні дроби |
-, +=, > |
|
правильні дроби |
+, *=, = = |
|
|
англійських мір довжин |
- -, *=, < |
|
англійських мір довжин |
++, -=, >, |
|
|
англійських мір ваги (фунти, унції) |
++, -=, >, |
|
англійських мір ваги (фунти, унції) |
- -, *=, < |
|
|
комплексних чисел |
+,>,*= |
|
комплексних чисел |
-, <, *= |
|
|
правильні дроби |
/, -=, > |
|
правильні дроби |
*, +=, = = |
|
|
правильні дроби |
+, /=, = = |
|
правильні дроби |
-, /=, < |