Объектно-ориентированный язык программирования С++ в примерах. Сивохин А.В. - 31 стр.

UptoLike

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

void init_asq() /*-инициализация и присваивание; */
{ string s1(10),s2(s1),s3(30);
s3=s2
}/*-конец примера с правильной инициализацией и =; */
При перегрузке некоторых операций следует учитывать ряд осо-
бенностей,обусловленных спецификой этих операций.Особенность
рассмотренной операции присваивания состоит в том,что она не
может наследоваться производными типами и не может быть стати-
ческой операцией для рассматриваемого типа.Особенности опера-
ций вызова функции,индексации и доступа к члену класса смотри-
те в [2].
1.4.2.Полиморфизм функций.
Полиморфизм функций - это задание одного имени действию,ко-
торое варьируется для одного объекта или передается вверх и
вниз по иерархии объектов с реализацией этого действия спо-
собом,соответствующим каждому объекту в иерархии.Полиморфные
функции в языке С++,как и полиморфные операции,называются пе-
регруженными(overload).В описаниях или определениях таких
функций перед их именем, как правило, ставится спецификатор
overload.
Полиморфизм функций в языке С++ поддерживается следующими
механизмами:
а)функции,определяющие сходные по содержанию действия,мо-
гут иметь одинаковые имена,если различны их наборы парамет-
ров:каждая пара наборов параметров отличается друг от друга
либо числом параметров,либо типом хотя бы одного параметра
при одинаковом их числе;
б)для функций-членов составного типа также можно использо-
вать одно и то же имя,когда эти функции определяют сходные
по содержанию действия и имеют различие в наборах параметров;
в)функции,определенные в некотором составном типе,наследу-
ются вверх по иерархии производными типами и при необходи-
мости переопределяются в производных типах с теми же или
новыми наборами параметров,причем после переопределения на-
следуется уже функция с новым содержанием вверх по иерархии
31
  void init_asq() /*-инициализация и присваивание;             */
       { string s1(10),s2(s1),s3(30);
            s3=s2
       }/*-конец примера с правильной инициализацией и =;      */


  При перегрузке некоторых операций следует учитывать ряд осо-
бенностей,обусловленных спецификой этих операций.Особенность
рассмотренной операции присваивания состоит в том,что она не
может наследоваться производными типами и не может быть стати-
ческой операцией для рассматриваемого типа.Особенности опера-
ций вызова функции,индексации и доступа к члену класса смотри-
те в [2].
                    1.4.2.Полиморфизм функций.


  Полиморфизм функций - это задание одного имени действию,ко-
торое варьируется для одного объекта или передается вверх и
вниз по иерархии объектов с реализацией этого действия спо-
собом,соответствующим каждому объекту в иерархии.Полиморфные
функции в языке С++,как и полиморфные операции,называются пе-
регруженными(overload).В описаниях или определениях таких
функций перед их именем, как правило, ставится спецификатор
overload.
  Полиморфизм функций в языке С++ поддерживается следующими
механизмами:
  а)функции,определяющие сходные по содержанию действия,мо-
гут иметь одинаковые имена,если различны их наборы парамет-
ров:каждая пара наборов параметров отличается друг от друга
либо числом параметров,либо типом хотя бы одного параметра
при одинаковом их числе;
  б)для функций-членов составного типа также можно использо-
вать одно и то же имя,когда эти функции определяют сходные
по содержанию действия и имеют различие в наборах параметров;
  в)функции,определенные в некотором составном типе,наследу-
ются вверх по иерархии производными типами и при необходи-
мости переопределяются в производных типах с теми же или
новыми наборами параметров,причем после переопределения на-
следуется уже функция с новым содержанием вверх по иерархии


                             31