Перевантаження функцій та операцій

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
СІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Алгоритмічні мови та програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки, молоді та спорту України Національний університет «Львівська політехніка» Лабораторна робота № 3 З дисципліни «Алгоритмічні мови та програмування, ч.2» Перевантаження функцій та операцій Варіант-5 Завдання: 5 Динамічний двомірний масив **p Конструктор повинен дозволяти створювати об'єкти з ініціалізацією і без неї. Визначити конструктор копій. Перевантажити операції -, =, виводу <<, вводу >> для об'єктів класу, а також дружні операції <тип>*, +=.   Код програми: #include "stdafx.h" #include <iostream> #include <cmath> #include <clocale> using namespace std; class Array { private: int lines; int columns; double **array; void createArr(int n, int m) { array = new double*[n]; for (int i = 0; i < m; i++) { array[i] = new double[m]; } } public: Array() { lines = rand()%10; columns = rand()%10; createArr(lines, columns); for (int i = 0; i < lines; i++) { for (int j = 0; j < columns; j++) { array[i][j] = rand()%100; } } } Array(int n, int m) { lines = n; columns = m; createArr(lines, columns); cout << "Веддiть елементи масиву" << endl << endl; for (int i = 0; i < lines; i++) { for (int j = 0; j < columns; j++) { cout << "A[" << i << "][" << j << "] = "; cin >> array[i][j]; } cout << endl; } cout << endl; } Array(const Array &arr) { lines = arr.lines; columns = arr.columns; array = arr.array; } friend ostream &operator<<(ostream &stream, Array &arr) { cout << "Елементи масиву:" << endl; for (int i = 0; i < arr.lines; i++) { for (int j = 0; j < arr.columns; j++) { stream << "A[" << i << "][" << j << "] = " << arr.array[i][j] << endl; } cout << endl; } cout << endl; return stream; } friend istream &operator>>(istream &stream, Array &arr) { cout << "Веддiть елементи масиву" << endl << endl; for (int i = 0; i < arr.lines; i++) { for (int j = 0; j < arr.columns; j++) { cout << "A[" << i << "][" << j << "] = "; stream >> arr.array[i][j]; } cout << endl; } cout << endl; return stream; } Array operator+(Array &arr) { for (int i = 0; i < lines; i++) { for (int j = 0; j < columns; j++) { array[i][j] += arr.array[i][j]; } } return *this; } Array operator=(Array &arr) { for (int i = 0; i < lines; i++) { for (int j = 0; j < columns; j++) { array[i][j] = arr.array[i][j]; } } return *this; } }; void main() { setlocale(LC_CTYPE, "ukr"); Array arr1; cout << arr1; Array arr2(3, 3); Array arr3(3, 3); Array arr4 = arr2 + arr3; cout << arr4; cin >> arr4; cout << arr4; Array arr5 = arr4; cout << arr5; system("pause"); } Результат: /
Антиботан аватар за замовчуванням

10.03.2017 17:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!