матриці на вектор будемо мати матрицю-стовпець, у якої кількість рядків дорівнює кількості рядків вихідної матриці.
В
У результаті множення вектора на матрицю будемо мати матрицю-рядок, у якої кількість стовпців дорівнює кількості стовпців початкової матриці.
В
3. Класи
Клас - це тип структури, що дозволяє включати в опис типу не тільки елементи даних, а й функції (функції-елементи або методи).
Для обмеження доступу до елементів класу використовуються наступні специфікатори доступу: обмежень доступу немає; доступні лише в породжених класах; доступні тільки у своєму класі.
.1 Конструктори і деструктори
Додамо в клас функцію
Matrix (int m, int n)
Така функція називається конструктором і служить для ініціалізації створюваного об'єкта даних. Ім'я конструктора має збігатися з ім'ям класу, конструктор н повинен повертати значень і містити оператор return. Тип його явно не описується. Конструктор може бути перевантажений, тому у будь-якого нового типу даних можуть бути кілька конструкторів. p align="justify"> ~ Matrix () - спеціальний оператор, який називається деструктором. Він необхідний для того, щоб коректно завершити існування нашого об'єкта, тобто звільнити пам'ять у купі. p align="justify"> Деструкція, як і конструктор, не повинен повертати значення і мати явний опис типу. На відміну від конструкторів, яких може бути кілька у одного і того ж класу, деструктор повинен бути один і не повинен мати аргументів. (Const Matrix & A) називається конструктором копій. Він використовується при створенні об'єкта з ініціалізацією його об'єктом того ж типу. p align="justify"> Крім того, конструктор копії використовується при ініціалізації формального параметра функції у разі передачі їй об'єкта за значенням, і при поверненні об'єкта з функції по оператору return. При передачі посилань і покажчиків конструктор копії не використовується. p align="justify"> Неявний конструктор копії забезпечує просте поелементне копіювання одного об'єкта в другій. Такий вид копіювання часто називають поверхневим. br/>
.2 Перевантаження операцій
Більшість операцій мови С + + для нових типів даних може бути перевантажено. Для перевантаження операції необхідно створити функцію з назвою, що складається з ключового слова operator і знака перевантажується операції. Кількість параметрів цієї функції визначається тим, одномісна або двомісна операція перевантажується, а також наявністю неявних елементів у методів класу. p align="justify"> Перевантаження операцій передбачає введення в мову двох взаємопов'язаних особливостей: можливості оголошувати в одній області видимості кілька процедур або функцій з однаковими іменами і можливості описувати влас...