Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМКД_ОБП_Урдабаева.doc
Скачиваний:
113
Добавлен:
01.03.2016
Размер:
1.29 Mб
Скачать

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

1. Time класында уақытқа уақыт қосу, уақытты шегеру әдістерін анықтаңыз.

2. Жол класын сипаттаңыз. Жолға мән беру үшін параметрлі конструкторды пайдаланыңыз.

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

  1. «Электроэнергия» программасы. Программа санағыш көрсеткіштері бойынша электроэнергия үшін төленетін төлем сомасын есептеу қажет. Санағыштың бастапқы мәндерін беру үшін конструкторды қолданыңыз.

  2. Қиық пирамида бетінің ауданын және көлемін есептеу мүмкіндігін беретін объект құрылымын сипаттау. Берілген объект көмегімен қиық пирамида бетінің ауданы мен көлемін есептейтін программа жазу. Қиық пирамида өлшемдері конструктор арқылы берілу қажет.

БЛИЦ-ТЕСТ

1. Құрылу кезінде объект инициализациясы үшін автоматты түрде шақырылады

a) деструктор b) функция c) конструктор d) мұрагерлік

2. Аргументсіз шақыруға болатын конструктор

a) көшіру конструкторы b) үнсіз жағдай конструкторы

c) параметрлі конструктор d) меншіктеу конструкторы

3. Объектілер жиынын және оларға қолданылатын амалдарды сипаттау - бұл

a) объект b) әдіс c) тұрақты d) класс

4.Объект жойылу кезінде автоматты түрде шақырылады

a) деструктор b) функция c) конструктор d) мұрагерлік

5. Конструктордың неше түрі бар?

a) 4 b) 3 c) 2 d) 1

ӘДЕБИЕТТЕР:

  1. Г.С. Иванова и др. ООП: Учебник для вузов, М., Изд-во МГТУ им.Баумана, 2003.- 368 с.

  2. Павловская Т.А. С и С++. Программирование на языке высокого уровня.

  3. Р.Вайнер, Л.Пинсон. С++ ИЗНУТРИ.

  4. Р. Лафоре. Объектно-ориентированное программирование в С++.4-е издание. Питер.2004

  5. Г. Шилдт. Самоучитель C++. - Санкт-Петербург, Изд. BHV, 2004.

  6. А.В. Замулин. Курс лекций: Объектно-ориентированное программирование (С++)

  7. Подбельский В.В., Фомин С.С. Программирование на языке Си: Учебное пособие. – М.: Финансы и статистика, 2004

Практикалық жұмыс №3-4 мұрагерлік. Жалғызданған және көпше түрдегі мұрагерлік

ЖҰМЫС МАҚСАТЫ: ОБП-дың негізгі қасиеттерінің бірі – мұрагерлік ұғымымен, оның түрлерімен және жүзеге асу принципімен таныстыру. Туынды кластарды құрастыру тәсілдерін меңгеру, мұрагерлік түрлерін ажырата білу.

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

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

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

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

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

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

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

  1. Мұрагерлік дегеніміз не?

  2. Мұрагерліктің қандай түрлерін ажыратуға болады?

  3. Туынды класта және структурада public, private және protected мүмкіндікті компоненттер қалай мұра етіледі?

  4. Мүрагерлік жиынында бірмәнділік еместікті қалай орнатуға болады?

  5. Туынды класта конструкторларды мен деструкторларды шақыру реті және мұрагерлік.

ГЛОССАРИЙ

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

Жалғызданған мұрагерлік – бір базалық кластан бір немесе бірнеше туынды кластың пайда болуы.

Көпше түрдегі мұрагерлік - туынды кластың құрамында бірден көп базалық кластың болуы.

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

1-мысал. Public мұрагерлік түрімен туынды класты сипаттау.

#include <iostream.h>

#include <conio.h>

class A

{private: //кластың қорғалған (жабық) компоненттері

int numza;

public: //кластың жалпы (ашық) компонеттері

int питоа;

void print (void)

{соut«"А қорғалған өрісі= "«numza«endl;

cout« "А ашық өрісі = "«numoa«endl;}

А() { numza=20; питоа=50;}

};

class В: public А /*ашық мұрагерлік – В класына А класының барлық жалпы компоненттері қол жетімді*/

{ private: int numzb;

public:

void print (void)

{соut«" В қорғалған өрісі = "«numzb«endl;

соut«" A жалпы өрісі =";

cout< <numoa< <endl;}

B(){numzb=100;}

};

void main()

{ clrscr();

A aa; В bb;

cout « "жұмыс нәтижесі: "«endl;

aa.print();

bb.print();

getch(); }

2-мысал. Private мұрагерлік түрімен туынды класты сипаттау.

#include <iostream.h>

#include <conio.h>

class A

{private: int numza;

protected: int numpra;

public:

int numoa;

void print(void)

{ cout «" A класының жабық өрісі = "«numza«endl;

соut«"A класының қорғалған өрісі= "«numpra«endl;

cout« " A класының ашық өрісі = "«numoa«endl;}

A(){numza=20; numpra=30; numoa=50;}};

class B: private A // кластың барлық компоненттері В класында қол жетімсіз

{private: int numzb;

protected:

A::numpra; /*А класының қорғалған өрісі В класында қол жетімді болып хабарланады*/

public:

А::питоа; /* А класының жалпы өрісі В класында қол жетімді болып хабарланады*/

void print(void)

{соut«"В класының жабық өрісі = "«numzb«endl;

соut«"В класында қол жетімді А класының ашық өрісі=";

соut<<питоа< <endl;

соut«''В класында қол жетімді А класының қорғалған өрісі= ";

cout< <numpra«endl;}

B(){numzb=100;}} :

void main()

{ clrscr();

A aa; В bb;

cout « "жұмыс нәтижесі: "«endl;

aa.print();bb.print();

getch();}

3-мысал. Базалық және туынды кластардағы конструкторлар жұмысы.

#include <iostream.h>

#include <conio.h>

class A

{ int a;

public:

int c1;

void print(void) { cout<<a<< " "<< c1<<endl;}

A(int v):a(v){c1=10;} //А базалық класының конструкторы

};

class В: public A

{ int b;

public:

void print(void) { cout«b« " "<<c1 <<endl;}

B(int va,int vb):A(va),b(vb) {} // В класының конструкторы

};

class С: public В

{ int с;

public:

void print(void) { cout< <c< < " "«c1 < <endl;}

C(int va,int vb,int vc):B(va,vb),c(vc){} // С класының конструкторы

};

Void main()

{clrscr();

A aa(10), *pa; // А класының конструкторы шақырылады

В bb(10,100); //А класының, содан соң В класының конструкторы шақырылады

С сс(10,100,1000); //А, В және С кластарының конструкторлары шақырылады

bb.c1=25;

сс.с1=35;

aa.print();

bb.print();

cc.print();

ра=&аа;

pa->print():

pa=&bb;

pa->print();

ра=&сс;

pa->print();

getch();}