Составители:
Рубрика:
41
Функция, перегружающая операцию в С++ называется «операция-
функция» и должна выглядеть следующим образом:
тип operator знак_операции (список формальных_параметров)
{тело_функции
}
Здесь тип – тип возвращаемого функцией значения, operator- ключевое
слово, определяющее, что данная функция перегружает операцию,
знак_операции – знак той операции языка С++, которую перегружает данная
функция. Количество параметров
функции определяется количеством операн-
дов у соответствующей операции, а также способом определения функции.
Операция-функция может быть как компонентной функцией некоторого клас-
са, так и внешней функцией. Рассмотрим пример перегрузки операций для
класса array2 (двумерный массив целых чисел).
//Листинг 18. Перегрузка операций для класса «двумерный массив целых чисел»
#include <iostream.h>
#include <conio.h>
class array2
{ int **mas; //указатель на массив
int n,m; //количество строк и столбцов
public:
array2(int,int); //конструктор
void ReadMas(); //ввод массива с клавиатуры
void WriteMas(); //вывод элементов массива на экран
~array2(); //деструктор
operator int(); //перегрузка операции приведения типа
friend array2& operator*(array2&,array2&); //дружественная функция перегрузки
//операции умножения
void operator=(array2&); //перегрузка операции присвоения
};
array2::array2(int a,int b){n=a;m=b; //динамически выделяем память под
двумерный массив
mas=new int *[n];
for (int i=0;i<n;i++)
mas[i]=new int[m];
}
void array2::ReadMas(){
cout<<"Введите массив \n";
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
cin>>mas[i][j];}
Функция, перегружающая операцию в С++ называется «операция- функция» и должна выглядеть следующим образом: тип operator знак_операции (список формальных_параметров) {тело_функции } Здесь тип – тип возвращаемого функцией значения, operator- ключевое слово, определяющее, что данная функция перегружает операцию, знак_операции – знак той операции языка С++, которую перегружает данная функция. Количество параметров функции определяется количеством операн- дов у соответствующей операции, а также способом определения функции. Операция-функция может быть как компонентной функцией некоторого клас- са, так и внешней функцией. Рассмотрим пример перегрузки операций для класса array2 (двумерный массив целых чисел). //Листинг 18. Перегрузка операций для класса «двумерный массив целых чисел» #include#include class array2 { int **mas; //указатель на массив int n,m; //количество строк и столбцов public: array2(int,int); //конструктор void ReadMas(); //ввод массива с клавиатуры void WriteMas(); //вывод элементов массива на экран ~array2(); //деструктор operator int(); //перегрузка операции приведения типа friend array2& operator*(array2&,array2&); //дружественная функция перегрузки //операции умножения void operator=(array2&); //перегрузка операции присвоения }; array2::array2(int a,int b){n=a;m=b; //динамически выделяем память под двумерный массив mas=new int *[n]; for (int i=0;i >mas[i][j];} 41
Страницы
- « первая
- ‹ предыдущая
- …
- 39
- 40
- 41
- 42
- 43
- …
- следующая ›
- последняя »