русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Тема 3. Перевантаження операторів


Дата добавления: 2015-07-09; просмотров: 921; Нарушение авторских прав


 

3.1. Нехай даний клас для зберігання й обробки комплексних чисел:

class complex

{ double re; // реальна частина

double im; //мнима частина

public:

complex() {re=0; im=0;}

complex(double i, double j) {re=i; im=j;}

void get(double &i, double &j) {i=re; j=im; }

//...

};

Для класу complex перевантажте оператори порівняння < і >(порівнюються модулі комплексних чисел) за допомогою функцій – членів класу complex.

3.2. Нехай даний клас

class three_d {

int x, y, z;

public:

three_d(int i, int j, int k);

three_d() ;

void get (int &i, int &j, int &k);

};

Перевантажте для цього класу оператори +, – , ++ і – – за допомогою функцій-членів класу. (Для операторів інкремента й декремента перевантажте тільки префіксну форму.)

3.3. Для класу strtype перевантажте оператор []. Цей оператор повинен повертати символ по заданому індексу. Крім цього, необхідна можливість задавати оператор [] у лівій частині інструкції присвоювання.

#define SIZE 255

class strtype {

char *p;

int len;

public:

strtype (); // конструктор

-strtype (); // деструктор

void set (char *ptr) ;

void show ( ) ;

};

3.4. Перевантажте оператори зсуву >> і << щодо класу coord так, щоб стали можливими наступні типи операцій:

ob << integer

ob >> integer

Упевніться, що ваші оператори дійсно зсувають значення х и y на задану кількість розрядів.

class coord {

int x, y; // значення координат

public:

coord () ;

coord (int i, int j);

void get_xy(int &i, int &j) ;

};

3.5. Перевантажте оператор + для класу three_d

class three_d {

int x, y, z;

public:

three_d(int i, int j, int k);

three_d() ;

void get (int &i, int &j, int &k);

};

так, щоб мати можливість виконувати наступні типи операцій:



ob + int;

int + ob;

3.6. Перевантажте оператори = = та != | щодо класу three_d (див. завд. 3.5) для порівняння двох об`єктів.

3.7. Нехай даний клас для зберігання й обробки комплексних чисел:

class complex

{ double re; // реальна частина

double im; //мнима частина

public:

complex() {re=0; im=0;}

complex(double i, double j) {re=i; im=j;}

void get(double &i, double &j) {i=re; j=im; }

//...

};

Для класу complex перевантажте оператори порівняння = = і != (порівнюються модулі комплексних чисел) за допомогою функцій – дружніх класу complex.

3.8. Для класу complex (див. завдання 3.7) перевантажте унарний оператор мінус (–) за допомогою функції - дружньої класу complex.

3.9. Для класу complex (див. завдання 3.7) перевантажте унарний оператор інкременту (++) за допомогою функції - дружньої класу complex. (Забезпечте різницю між постфіксною і префіксною записами інкременту.)

3.10. Для класу complex (див. завдання 3.7) перевантажте бінарні оператори множення (*) і ділення ( / ) за допомогою функцій - членів класу complex.

3.11. Для класу complex (див. завдання 3.7) перевантажте унарний оператор декременту ( – –) за допомогою функції - дружньої класу complex. (Забезпечте різницю між постфіксною і префіксною записами декременту.)

3.12. Для класу complex (див. завдання 3.7) перевантажте унарний оператор (!), що реалізує комплексне сполучення, за допомогою функції - дружньої класу complex.

3.13. Для класу complex (див. завдання 3.7) перевантажте унарний оператор мінус (–) за допомогою функції - члена класу complex.

3.14. Для класу complex (див. завдання 3.7) перевантажте унарний оператор (!), що реалізує комплексне сполучення, за допомогою функції - члена класу complex.

3.15. Для класу complex (див. завдання 3.7) перевантажте бінарні оператори додавання (+) і вирахування ( - ) за допомогою функцій - дружніх класу complex.

3.16. Для класу complex (див. завдання 3.7) створіть перевантажений оператор перетворення об'єкта даного класу в рядок і в ціле число (реальна частина).

3.17. Для класу three_d (див. завдання 3.6) створіть перевантажений оператор перетворення об'єкта даного класу в рядок.

3.18. Створіть клас chess (шахи), у якому зберігаються поля шахівниці x, y (цілі числа, що лежать у діапазоні 1-8). Ліве нижнє поле дошки (1, 1) є чорним. Перевантажите щодо цього класу унарний оператор ! , що повертає істину якщо дане поле є білим, у противному випадку повертає неправду.

3.19. Створіть клас chess (шахи), у якому зберігаються поля шахівниці x, y (цілі числа, що лежать у діапазоні 1-8). Ліве нижнє поле дошки (1, 1) є чорним. Перевантажте щодо даного класу оператори = = і !=, які відповідно істинність висловлення: «Дані поля мають однакові кольори».

3.20. Створіть клас chess (шахи), у якому зберігаються поля шахівниці x, y (цілі числа, що лежать у діапазоні 1-8). Ліве нижнє поле дошки (1, 1) є чорним. Перевантажте щодо даного класу бінарний оператор +(за допомогою дружньої функції), що повертає істину, якщо «Тура за один хід може перейти з одного поля на інше».

3.21. Створіть клас chess (шахи), у якому зберігаються поля шахівниці x, y (цілі числа, що лежать у діапазоні 1-8). Ліве нижнє поле дошки (1, 1) є чорним. Перевантажте щодо даного класу бінарний оператор * (за допомогою функції-члена класу), що повертає істину, якщо «Король за один хід може перейти з одного поля на інше».

3.22. Створіть клас chess (шахи), у якому зберігаються поля шахівниці x, y (цілі числа, що лежать у діапазоні 1-8). Ліве нижнє поле дошки (1, 1) є чорним. Перевантажте щодо даного класу бінарний оператор / (за допомогою дружньої функції), що повертає істину, якщо «Слон за один хід може перейти з одного поля на інше».

3.23. Створіть клас chess (шахи), у якому зберігаються поля шахівниці x, y (цілі числа, що лежать у діапазоні 1-8). Ліве нижнє поле дошки (1, 1) є чорним. Перевантажте щодо даного класу бінарний оператор - (за допомогою функції-члена класу), що повертає істину, якщо «Ферзь за один хід може перейти з одного поля на інше».

3.24. Створіть клас chess (шахи), у якому зберігаються поля шахівниці x, y (цілі числа, що лежать у діапазоні 1-8). Ліве нижнє поле дошки (1, 1) є чорним. Перевантажте щодо даного класу бінарний оператор + (за допомогою дружньої функції), що повертає істину, якщо «Кінь за один хід може перейти з одного поля на інше».

3.25. Створіть клас date (дата), у якому зберігаються два цілих числа: D (день) і M (місяць), що визначають правильну дату. Перевантажте щодо даного класу оператор перетворення об'єкта даного класу в рядок, що буде містити відповідній даній даті знак Зодіаку: «Водолій» (20.1-18.2), «Риби» (19.2-20.3), «Овен» (21.3-19.4), «Телець» (20.4-20.5), «Близнюки» (21.5-21.6), «Рак» (22.6-22.7), «Лев» (23.7-22.8), «Діва» (23.8-22.9), «Терези» (23.9-22.10), «Скорпіон» (23.10-22.11), «Стрілець» (23.11-21.12), «Козеріг» (22.12-19.1).



<== предыдущая лекция | следующая лекция ==>
Тема 2. Масиви об'єктів. Покажчики на об'єкти | Int x, y; // значення координат


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.15 сек.