Есеп 1. Енгізілген бүтін санның квадратын экранған шығаратын қарапайы қосымшаны С++ тілінде класстың әдісі арқылы құрастырамыз.
Программасы
|
Түсініктеме
|
# include # include
|
Қажетті кітапханаларды қосу:
stdio.h-стандартты енгізу - шығару операторлары,
conio.h - экранның қосымша
|
# include
|
мүмкіндіктері,
- math.h - математикалық функциялар үшін
|
class MyClass
{
|
MyClass классының сипаттаулы
|
private:
int Data;
|
Класстың Data бүтін типті жабық ішкі айнымалысын
сипаттау
|
public:
|
Класстық ашық әдістерін сипаттау
|
void SetData (int D)
{
Data = D;
}
|
SetData әдісі. D айнымалының мәнін қабылдап, Data ішкі айнымалыға меншіктейді.
|
void ShowData ( )
{
|
ShowData әдісі.
|
int M;
|
Әдістің бүтін типті жергілікті M айнымалысын сипаттау
|
M=pow(Data,2);
|
М айнымалының мәнін квадраттау
|
printf(“% sannin kvadrati=%d“,Data, M); end;
}
|
Экранға нәтижені шығару
|
};
|
Класс денесінің аяқталуы
|
int main ( )
{
|
Негізгі программаның басы
|
Int L;
|
Жергілікті бүтін типті L айнымалыны сипаттау
|
MyClass C;
|
Жергілікті MyClass типті айнымалыны сипаттау. C класс
экземпляры болып табылады.
|
Printf(“Butin san engiz=”);
Scanf(“%d”,&L);
|
L айнымалының мәнін енгізу
|
C. SetData (L);
|
C классының SetData әдісін шақыру арқылы L-дің мәнін
|
|
қабылдау. L-дің мәні формалды параметр D-ға, D-дан әдістің жергілікті айнымалысы Data-ға
беріледі.
|
C. ShowData ();
|
C классының ShowData әдісін шақыру арқылы L
айнымалының квадратын экранға шығару
|
return 0;
}
|
Негізгі программаның соңы
|
Есеп 2. Координаттар жүйесіне арналған класс және объект.
class Coord
{
public:
int x,y;
void SetCoord(int _x, int _y);
};
void Coord::SetCoord(int _x, int _y)
{
x = _x; у = _y;
}
int main()
{
Coord pt;
Coord *ptPtr = &pt; //объектіге сілтеме
//...
pt.x =0; // объект. клас мұшесі
ptPtr->y = 0; //сілтеме->клас мұшесі ptPtr->SetCoord(10,20);
//... return 0;
}
Зертханалық жұмысты орындауға арналған жеке тапсырмалар:
Жаңа класс құру арқылы тіктөртбұрышты сызатын қосымша құрыңыз.
Векторларды есептеуге арналған TVector классын құрыңыз.
С++ тілінде көліктердің классын іске асырыңыз.
ЛАБОРАТОРИЯЛЫҚ ЖҰМЫС № 12
Тақырыбы: Қол жеткізу модификаторлары
Жұмыстың мақсаты: Объектіге-бағытталған бағдарламалауда класс мүшелеріне әртүрлі қол жеткізу модификаторларын пайдалануды үйрену.
Оқу-зертханалық құрылғылар тізімі: Дербес компьютер немесе ноутбук, Windows/Linux/macOS операциялық жүйелерінің бірі, Turbo С++/Dev C++/Visual C++ бағдарламалау орталарының бірі.
Қысқаша теориялық мағлұмат:
Кластар элементтеріне қол жеткізу үшін қол жетерлік модификасиясы қолданылады. Олар кластың барлық элементтеріне, басқа модификатор кездеспегенше немесе кластың жариялануы бітпегенше қолданылады. 6.1- кестеде қол жеткізу модификаторлары сипатталған.
Кесте 12.1. Қол жеткізу модификаторлар сипаттамасы
Спецификаторлар
|
Сипаттамасы
|
Private:
|
Мәліметтер-мүшелері мен функция-мүшелері тек осы класс функция-мүшелеріне ғана қол жетерлік болады.
|
Protected:
|
Мәліметтер-мүшелері мен функция-мүшелері осы класс функция-мүшелеріне және одан өндірілген кластана қол жетерлік болады.
|
public:
|
Мәліметтер-мүшелері мен функция-мүшелері тек осы класс функция-мүшелеріне және кластың өкілі бар, программаның басқа функцияларына ғана қол
жетерлік болады.
|
Кластың мүшелерi static модификаторымен жарияланады. Кластың статикалық мүшесi глобалды айнымалы немесе класс аймағында қол жетерлік функция ретінде қарастыруға болады.
Static модификаторымен жарияланған кластың мәлімет-мүшесі сол кластың барлық өкiлдерiмен бөлiнедi, өйткенi негiзiнен бұл айнымалыда бiр-ақ дана бар болады. Негізінде, кластың ешқандай да өкiлдерi жоқ болса да, статикалық мәлiмет-мүшелеріне жад бөлінеді. Сондықтан, класс статикалық мәлiмет-мүшелерін жариялап қана қоймай, оларды анықтау керек. Мысалы:
class AnyClass
{
public:
AnyClass();
//статикалық мәлімет-мүшені жариялауы static int count;
};
// статикалық мәлімет-мүшесін анықтау int AnyClass::count = 0;
Кластың Public тарауында жарияланған статикалық мәлімет-мүшеге объектінін атауын қолданып келесі конструкция арқылы қол жеткізуге болады:
<объект>.< мәлімет_мүше > немесе
< объектіге_сілтеме> - > < мәлімет_мүше >.
Қарастырылған констуркцияның орнына келесі шақыру формасын қолдану жақсырақ болады:
<класс_атауы>: : < мәлімет_мүше >.
Ол дұрысырақ болады, өйткенi ол барлық кластың жалғыз мәлімет_мүшесі екенін нақтырақ көрсетеді. Егер статикалық мәлімет_мүшелері жабық түрінде жарияланса, оларға қарапайым функция- мүшелері арқылы қол жеткізуге болады. Олардың қол жеткізу процессі басқа мәлiмет-мүшелеріне қол жеткізуден еш айырмашылығы жоқ, бiрақ ол үшiн кластың ең болмаса бiр объектiсін құру керек.
Жоғарыда айтылған бойынша келесi ұсыныстарды беруге болады:
кластың бiрнеше объектiлерінің мәлiметтерін бірге қолдану үшін статикалық мәлімет-мүшелерін қолданыңыз;
статикалық мәлiмет-мүшелеріне қол жеткізу мүмкіндігін protected немесе private тарауларында жариялау арқылы шектеңiз.
Достарыңызбен бөлісу: |