Полезно за вас: Речник | Игри | Новини | Фирми | Рецепти | Обяви
Начало на реферати

Виртуални функции и Виртуални класове


Информационни технологии | 2009-12-04 | 33 сваляния

Виртуални функции и Виртуални класове

Полиморфизъм - Виртуални Функции

  • Полиморфизмът е свойство на член-функциите и се реализира с виртуални функции.

  • Той се състои в осигуряване възможността генерирания код да се държи по различен начин в зависимост от условия, определяни по време на изпълнението на програмата.

  • Идеята на тези функции се основава на вида на свързването им (статично или ранно и съответно динамично или късно).

  1. Статичното свързване на типа на обекта с извикваната член-функция става по време на компилацията и не се променя при изпълнение на програмата. Свързващият редактор замества имената на извикваните функции с конкретните им адреси.

Пример илюстриращ статично свързване

#include

class point

{ protected:

int x,y;

point(int a=0,int b=0) { x=a; y=b; }

void out() {cout<<точка:<<x<< <<y<<n; }

};

class pointcol:public point

{ short color;

public:

pointcol(int a=0,int b=0,short cl=1):point(a,b)

{ color=cl; }

void out()

{ cout<<оцветена точка:<<x<< <<y<<с цвят:<<color<,n; }

};

void main()

{ point p(3,5),*adp=&p;

pointcol pc(8,6,2),*adpc=&pc; //Резултати от изпълнение

adp->out(); //извиква се out на point точка:3 5

adpc->out();//извиква се out на pointcol оцветена точка:8 6 2

adp=adpc; //по време на изпълнението

adp->out(); //но adp е point по време точка:3 5

adpc->out();//на компилация оцветена точка:8 6 2

}

  1. Динамичното свързване на типа на обекта с извикваната член-функция е по време на изпълнение на програмата. При извикването на функция се задава само името, но не и конкретния адрес на прехода. Или по време на изпълнение се дава възможността за промяна на връзките между имена и адреси. Късното свързване се определя чрез думата virtual.

Пример илюстриращ динамично свързване

#include

class point

{ protected:

int x,y;

point(int a=0,int b=0) { x=a; y=b; }

virtual void out() {cout<<точка:<<x<< <<y<<n; }

};

class pointcol:public point

Виртуални функции и Виртуални класове

Добави своя коментар:



Тагове от реферата: , , , , , ,


Подобни материали


Синтактически подход за класификация на информацията Информационни технологии | 2010-11-13 | 56 прочитания
Работа с Windows Информационни технологии | 2010-11-13 | 48 прочитания
Упражнение (word) Информационни технологии | 2010-11-13 | 38 прочитания
Разучаване на програмата за обработка на прекъсване Информационни технологии | 2010-11-13 | 49 прочитания
Програми и модули Информационни технологии | 2010-11-13 | 34 прочитания
Ядро на микропроцесор Информационни технологии | 2010-11-13 | 56 прочитания
Операционни системи и компютърни мрежи Информационни технологии | 2010-11-13 | 64 прочитания
Минимиз.на БФ.Диаграма на Вейч за 2,3 и 4 аргумента Информационни технологии | 2010-11-13 | 91 прочитания
Описание действието на компютъра-концептуални нива.Формализиране на описанието-система MPS Информационни технологии | 2010-11-13 | 29 прочитания
Работа с Макромедия Флаш Информационни технологии | 2010-11-13 | 109 прочитания