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

UptoLike

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

типов,начиная от места переопределения этой функции;такой ме-
ханизм называется статическим, или статическим методом до-
ступа,так как поиск вызываемых в программе функций в иерар-
хии типов производится статически, т.е. на стадии компиляции;
г)функции,определяемые в иерархии составных типов со сло-
вом virtual(виртуальный),имеют одно и то же имя и один и
тот же набор параметров,а вариация действия,специфицируемого
каждой функцией,зависит от места ее определения в иерархии;
этот механизм называется динамическим,или виртуальным мето-
дом доступа,так как поиск вызываемых в программе функций
в иерархии производных типов производится динамически,т.е.
на стадии выполнения программы.
Различные функции обычно имеют разные имена,но функциям,вы-
полняющим сходные действия и имеющим различные наборы пара-
метров,иногда лучше дать возможность иметь одинаковые имена.
Используя различия в наборах параметров,компилятор всегда
может их идентифицировать и выбирать для вызова нужную фун-
кцию.Можно,например,написать одну функцию возведения в сте-
пень для различных сочетаний типов основания и показателя
степени:
overload pow;/*-е-возводимое в степень число:р-показатель:*/
int pow(int e,int p);
double pow(double e,int p);
double pow(double e,double p);
x=pow(11,5);y=pow(12.6,7);y=pow(12.3,4.5);/*-вызовы pow; */
Описание overload pow сообщает компилятору,что использова-
ние имени pow более,чем для одной функции,является умышлен-
ным.
Такой полиморфизм функций улучшает выразительные возмож-
ности языка С++,но непосредственно не связан с объектно-ори-
ентированным программированием,где используется полиморфизм
методов доступа для объектов составного типа:структур,объеди-
нений и классов.
Хорошим примером полиморфных функций для составного объек-
та является набор конструкторов составного типа,когда зада-
32
типов,начиная от места переопределения этой функции;такой ме-
ханизм называется статическим, или статическим методом до-
ступа,так как поиск вызываемых в программе функций в иерар-
хии типов производится статически, т.е. на стадии компиляции;
  г)функции,определяемые в иерархии составных типов со сло-
вом virtual(виртуальный),имеют одно и то же имя и один и
тот же набор параметров,а вариация действия,специфицируемого
каждой функцией,зависит от места ее определения в иерархии;
этот механизм называется динамическим,или виртуальным мето-
дом доступа,так как поиск вызываемых в программе функций
в иерархии производных типов производится динамически,т.е.
на стадии выполнения программы.
  Различные функции обычно имеют разные имена,но функциям,вы-
полняющим сходные действия и имеющим различные наборы пара-
метров,иногда лучше дать возможность иметь одинаковые имена.
Используя различия в наборах параметров,компилятор всегда
может их идентифицировать и выбирать для вызова нужную фун-
кцию.Можно,например,написать одну функцию возведения в сте-
пень для различных сочетаний типов основания и показателя
степени:


  overload pow;/*-е-возводимое в степень число:р-показатель:*/
  int pow(int e,int p);


  double pow(double e,int p);
  double pow(double e,double p);
  x=pow(11,5);y=pow(12.6,7);y=pow(12.3,4.5);/*-вызовы pow;     */


  Описание overload pow сообщает компилятору,что использова-
ние имени pow более,чем для одной функции,является умышлен-
ным.
  Такой полиморфизм функций улучшает выразительные возмож-
ности языка С++,но непосредственно не связан с объектно-ори-
ентированным программированием,где используется полиморфизм
методов доступа для объектов составного типа:структур,объеди-
нений и классов.
  Хорошим примером полиморфных функций для составного объек-
та является набор конструкторов составного типа,когда зада-
                            32