Объектно-ориентированное программирование на языке С++. Лясин Д.Н - 41 стр.

UptoLike

Составители: 

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