Решение задач на перегружаемые и виртуальные методы. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Решение задач на перегружаемые и виртуальные методы.



Цель работы: использовать различные виды методов при создании программ.

 

Теория.

Имеется четыре вида методов: статические, виртуальные, динамические и абстрактные.

— По умолчанию все методы статические. Если в классе — наследнике переопределить такой метод (ввести новый метод с тем же именем), то для объектов этого класса новый метод отменит родительский. Если обращаться к объекту этого клас­са, то вызываться будет новый метод. Но если обратиться к объекту как к объекту родительского класса, то вызываться будет метод родителя.

Виртуальные и динамические методы не связаны с другими методами с тем же именем в классах — наследниках. Если в классах — наследниках эти методы перегружены, то при обращении к такому методу во время выполнения будет вы­зываться тот из методов с одинаковыми именами, который соответствует классу объекта, указанному при вызове.

Абстрактный метод — это виртуальный или динамический метод, реализа­ция которого не определена в том классе, в котором он объявлен. Предполагается, что этот метод будет перегружен в классах — наследниках. Только в тех классах, в которых он перегружен, его и можно вызывать.

Объявляется абстрактный метод с помощью ключевого слова abstract после слова virtual или dynamic.

Например:

procedure DoSomething; virtual; abstract;

Любой метод (и статический, и виртуальный) может быть перегружен с помощью ключевого слова overload.

Для виртуальных методов в этих случаях надо еще добавить ключевое слово reintroduce. Если перегруженные таким образом методы различаются числом или типом параметров (так называемой сигна­турой), то при вызове метода из класса — наследника будет вызываться тот метод, список параметров которого соответствует списку аргументов.

При реализации метода, переопределенного любым способом в классе — н­следнике, можно вызывать метод класса — родителя.

Для этого перед именем метода при его вызове записывается ключевое слово inherited. Например, оператор

inherited create (...);

вызывает метод Create родителя.

Если записать слово inherited и после него не писать имя вызываемого метода, то будет вызываться наследуемый метод, совпадающий по имени с именем того ме­тода, из которого он вызывается.

Например, если в переопределяемом конструкто­ре встречается оператор

inherited; то будет вызван конструктор родительского класса.

 

Задание 1.

В заданиях с №1 по 15 (табл. 3.1.) необходимо вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для x изменяющихся от xn до xk с шагом h=(xn-xk)/10. Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(x) и Y(x).

Таблица 3.1

S(x) n Y(x)
           
    0.1      
    0.1    
    0.1    
    0.1      
    0.1    
    0.1    
    0.1    
    0.1      
    0.1    
      Окончание табл. 3.1
           
    0.1   0.5    
    0.1    
    0.1        
    -2   -0.1  
    0.2   0.8  
    0.1   0.8    

 

 

Контрольные вопросы:

 

1. Имя метода, который используется для уничтожения экземпляра класса?

2. Конструктор - это...?

3. На какие группы делятся методы?

4. Конструктор - это...?

 

 

Лабораторная работа № 11.



Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 330; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.204.125.111 (0.008 с.)