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

UptoLike

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

40
объектами класса client является использование дружественных функций или
дружественных классов.
3.7. Перегрузка операций
Классы вводят в программу новые пользовательские типы данных. Такие ти-
пы могут использоваться наравне со стандартными ( базовыми): они могут исполь-
зоваться для определения новых переменных, могут входить в списки параметров
функций и определять тип возвращаемого значения. В
условиях фактического рав-
ноправия производных и основных типов данных должна существовать возмож-
ность сохранения привычной структуры выражений при работе с данными произ-
водных типов. Это означает, что выражение для вычисления суммы двух слагае-
мых уже известного нам типа array по своей структуре не должно отличаться от
соответствующих выражений для слагаемых
типа int или float. Но большинство
операций языка C++ определены лишь для основных типов данных. Использование
в качестве операндов операций выражений производных типов вызывает ошибки
трансляции.
int a,b,c;
c=a+b; // использование операндов базовых типов для операции сложения разрешено
array m1(4),m2(4),m3(4);
// m1=m2+m3; ошибка!!! использование операндов производных типов для
//операции сложения запрещено
И всё же возможность сохранения привычной структуры выражений для про-
изводных типов в C++ существует.
Для этого в программе необходимо перегрузить
операцию для нестандартного типа данных. Перегрузка операции заключается в
определении специальной функции, которая будет вызываться при использовании
операции языка С++ с нестандартными типами данных.
объектами класса client является использование дружественных функций или
дружественных классов.


     3.7. Перегрузка операций


    Классы вводят в программу новые пользовательские типы данных. Такие ти-
пы могут использоваться наравне со стандартными ( базовыми): они могут исполь-
зоваться для определения новых переменных, могут входить в списки параметров
функций и определять тип возвращаемого значения. В условиях фактического рав-
ноправия производных и основных типов данных должна существовать возмож-
ность сохранения привычной структуры выражений при работе с данными произ-
водных типов. Это означает, что выражение для вычисления суммы двух слагае-
мых уже известного нам типа array по своей структуре не должно отличаться от
соответствующих выражений для слагаемых типа int или float. Но большинство
операций языка C++ определены лишь для основных типов данных. Использование
в качестве операндов операций выражений производных типов вызывает ошибки
трансляции.
    int a,b,c;
    …
    c=a+b; // использование операндов базовых типов для операции сложения разрешено

    array m1(4),m2(4),m3(4);
    …
    // m1=m2+m3; ошибка!!! использование операндов производных типов для
    //операции сложения запрещено

    И всё же возможность сохранения привычной структуры выражений для про-
изводных типов в C++ существует. Для этого в программе необходимо перегрузить
операцию для нестандартного типа данных. Перегрузка операции заключается в
определении специальной функции, которая будет вызываться при использовании
операции языка С++ с нестандартными типами данных.


                                          40