Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Полиморфизм. Амалдарды Қайта аныҚтау






ЖҰ МЫС МАҚ САТЫ: Ерте байланысу жә не кеш байланысу механизмдерімен таныстыру, амалдарды қ айта анық тауды жү зеге асыра білуді ү йрету.

ПРАКТИКАЛЫҚ САБАҚ ЖОСПАРЫ:

1. Негізгі теориялық мә ліметтерді қ айталау.

2. Шығ арылғ ан мысал есепті талқ ылау.

3. Тапсырма ретінде берілген есептерді шығ ару.

4. Ө з бетімен орындауғ а ү й тапсырмасын беру.

5. Сабақ ты қ орытындылау. Блиц-тест.

БАҚ ЫЛАУ СҰ РАҚ ТАРЫ:

1. Полиморфизм дегеніміз не?

2. Полиморфизмнің тү рлері қ андай?

3. Амалды қ айта анық таудың мақ саты неде?

4. Қ андай амалдар достас функциялар, ал қ андай амалдар мү шелер болуы қ ажет?

5. Қ айта анық талғ ан амалдардың нә тижені қ айтару ә дістері.

6. Қ андай амалдарды қ айта анық тауғ а болмайды?

ГЛОССАРИЙ

Полиморфизм – иерархияның ә ртү рлі дең гейіндегі кластар ү шін қ андай да бір аты бойынша бір ә дістің ә ртү рлі аспектілерін анық тау мү мкіндігін қ амтамасыз етеді.

Жай полиморфизм – ерте байланысу механизміне негізделеді.

Кү рделі полиморфизм – кеш байланысу механизміне негізделеді.

Амалдарды қ айта анық тау – бастапқ ы мә ндерінің біреуін де жоғ алтпай, жаң а класс объектілері ү шін ұ қ сас мағ ыналы амалдарды енгізу.

 

1. Тө менде келтірілген мысалды талқ ылаң ыз:

Есептің қ ойылымы: Нақ ты сан класынан туынды бү тін сан класын сипаттау жә не амалдар орындау.

Программасы:

# include < stdio.h>

#include < stdlib.h>

#include < iostream.h>

#include < string.h>

#include < conio.h>

Typedef unsigned long dlong;

Class Tlong {

Public: dlong num;

Tlong() { cout< < “neiniciiru konstr classa”< < endl; }

Tlong(dlong an) {cout < < ”Konstr classa Tolng”< < endl;

Setnum(an); }

~Tlong(){cout< < ”destr classa Tlong”< < endl; }

Int Kolc();

Void showl(){print(); }

Void print(void);

Void setnum(dlong an) {num=an; }};

Void Tlong:: print(){cout< < ” “< < num< < endl; }

Int Tlong:: kolc()

{dlong t=num; int k=0;

While(t> 0) {k=k+1; t=t/10; }

Return k; }//class 2

Class Treal: public Tlong

{Public: dlong drob;

Char* real;

Void print();

Void setnumv(char*st);

Treal() { real=NULL;

Cout< < ”neinicializiru konstr classa”< < endl; }

Treal(char*st);

~Treal(){delete real; cout< < ”destr classa Treal”< < endl; }

Int dkolc(); };

Treal:: Treal(char*st): Tlong()

{cout< < ”konstr classa Treal”< < endl; setnumv(st); }

Void Treal:: setnumv(char*st)

{int l; char*ptr, *tremp; l=strlen(st); real=new

Char[l+1];

Temp=new char[l+1]; strcpy(rel, st); strcpy(temp, st);

Ptr=strchr(temp, ’.’); drob=dlong(atoll(ptr+1)); *ptr=’/0’;

Num=dolg(atoll(temp)); delete temp; }

Int Treal:: dkolc()

{ dlong t=drob; int k=0;

While (t> 0) {k=k+1; t=t/10; }

Return k; }

Void Treal:: print()

{cout< < ”vesh chislo: ”< < real< < endl;

Cout< < ”celay chast: ”< < end; Tlong:: print();

Cout< < ”drobnay chast: ”< < drob< < endl; }

Void showv(Tlong & par){par.print(); }

Char s[25];

Void main()

{clrscr();

Cout< < ”vvedite chislo ccccc, dddddd”< < endl; cin> > s;

Treal a(s);

Cout< < ”1 prostoi obekt proizvodnogo classa”< < endl;

Cout< < ”yvnii vizov pereopredel-go metoda”< < endl;

a.print();

cout< < ”2 vizov obekta proizvodnogo classa po

ukazatelu na proizvodnii class”

Trel *pr=new Treal(“98567.08765”);

Pr-> print();

Delete pr;

Getch();

Cout< < ”3 neyvnii vizov pereop metoda”< < endl;

Cout< < ”vizov pereopredel metoda iz nasl metoda

Showl()”< < endl;

a.showl();

getch();

Cout< < ”4 vizov obekta proiz classa po ukaz na bazovii”< < endl;

Tlong *pb=new Treal(“234567.34765”);

Pb-> print(); // oshibka!

Delete pb;

Getch();

Cout< < ”5 peredacha parameter-peremennoi”< < endl;

Showv(a);

Getch(); }

 

2. Орындауғ а арналғ ан тапсырмалар:

1. Арифметикалық амалдарды қ айта анық тауды қ олдана отырып «Полярлы координаталар» класын қ ұ ру.

2. «Кафедра» класын қ ұ ру кезінде полиморфизм принципін қ олдану.

3. Қ айта анық талғ ан арифметикалық амалдарды «Таймер» бағ дарламасын жү зеге асыру кезінде қ олдану.

3. Ө з бетімен орындауғ а арналғ ан тапсырмалар (ү й тапсырмасы):

1. Амалдарды қ айта анық тауды матрицаларғ а, массивтерге, жиындарғ а арифметикалық амалдар қ олдану кезінде қ олдану.

2. Полиморфизм принципіне сү йене отырып «Отбасы» класын қ ұ ру.

3. Авиабилет сұ раныстарын есепке алу бағ дарламасын қ ұ ру кезінде амалдарды қ айта анық тау.

 

БЛИЦ-ТЕСТ

1. Функцияның қ айтаратын мә нінің жоқ тығ ын қ андай сө з білдіреді:

a) Main. b) Void. c) Function. d) Procedure.

2. Функция мә нін қ айтару инструкциясын таң даң ыз:

a) return b) end c) define d) typedef

3. Қ айта анық тауғ а болмайтын оператор

a) = b) < > c): d);

4. Егер функция-оператор кластың кез келген компоненттеріне қ атынауы қ ажет болса, онда оны қ андай спецификатормен сипаттау керек?

a) public b) friend c) fixed d) operator






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.