ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
является вещественным, результатом деления будет вещественное число
(25.0 / 10.0 = 2.5). В языке С++ у программиста появляется возможность
задать для собственных типов данных свои методы обработки,
закрепленные за обозначением той или иной операции.
Большинству операций языка С++ соответствуют специальные
операторные функции, имеющие следующий прототип:
тип_возвращаемого_значения operator#
(список_формальных_параметров);
Здесь "#" – это знак операции С++. Не все операции можно
перегружать. К запрещенным для перегрузки операциям относятся "." ,
"::", "?:" и некоторые другие. Существует несколько ограничений,
которые следует учитывать при перегрузке операций. Во-первых, нельзя
менять приоритет операций. Во-вторых, нельзя изменять число операндов
операции. К примеру, операция "!" имеет только один операнд, поэтому
и ее перегруженная реализация должна быть унарной. В остальном,
правила перегрузки операций совпадают с правилами перегрузки
функций. Перегруженные операции должны отличаться списками
параметров. Например, операция "*" для матриц может быть
перегружена как функция умножения двух матриц или функция
умножения матрицы на число.
Операторные функции могут быть как методами класса, так и
внешними по отношению к классу функциями. Разберем принципы
создания таких функций для реализации операции умножения в классе
Matrix:
class Matrix
{
// определение структурных свойств
double** a; // адрес двумерного массива
// для хранения матрицы
int m, n; //количество строк и столбцов в матрице
// определение поведенческих свойств
public:
// конструктор создания матрицы определенного размера
Matrix(int, int);
// конструктор копирования
Matrix(const Matrix&);
// деструктор
~Matrix();
void InputMatrix();// метод ввода матрицы
79
Объектно-ориентированное программирование на С++
является вещественным, результатом деления будет вещественное число
(25.0 / 10.0 = 2.5). В языке С++ у программиста появляется возможность
задать для собственных типов данных свои методы обработки,
закрепленные за обозначением той или иной операции.
Большинству операций языка С++ соответствуют специальные
операторные функции, имеющие следующий прототип:
тип_возвращаемого_значения operator#
(список_формальных_параметров);
Здесь "#" – это знак операции С++. Не все операции можно
перегружать. К запрещенным для перегрузки операциям относятся "." ,
"::", "?:" и некоторые другие. Существует несколько ограничений,
которые следует учитывать при перегрузке операций. Во-первых, нельзя
менять приоритет операций. Во-вторых, нельзя изменять число операндов
операции. К примеру, операция "!" имеет только один операнд, поэтому
и ее перегруженная реализация должна быть унарной. В остальном,
правила перегрузки операций совпадают с правилами перегрузки
функций. Перегруженные операции должны отличаться списками
параметров. Например, операция "*" для матриц может быть
перегружена как функция умножения двух матриц или функция
умножения матрицы на число.
Операторные функции могут быть как методами класса, так и
внешними по отношению к классу функциями. Разберем принципы
создания таких функций для реализации операции умножения в классе
Matrix:
class Matrix
{
// определение структурных свойств
double** a; // адрес двумерного массива
// для хранения матрицы
int m, n; //количество строк и столбцов в матрице
// определение поведенческих свойств
public:
// конструктор создания матрицы определенного размера
Matrix(int, int);
// конструктор копирования
Matrix(const Matrix&);
// деструктор
~Matrix();
void InputMatrix();// метод ввода матрицы
79
Страницы
- « первая
- ‹ предыдущая
- …
- 77
- 78
- 79
- 80
- 81
- …
- следующая ›
- последняя »
