Муҳаммад ал-Хоразмий номидаги ТАТУ Самарқанд филиали
Лаборатория машғулотлари
ФАН |
|
ДАСТУРЛАШ (С++)
| Ҳафта рақами |
|
2
| Машғулот мазмуни |
| Синф аъзолари (аъзо функция ва ўзгарувчилар) дан фойдаланиб дастур тузиш. | Мақсад: |
| Синф аъзоларини ўрганиш;
Синф ва дастурнинг ишлаб чиқиш жараёнини имплементациясини ўрганиш;
Синф аъзоларини қўллаган ҳолда дастурлар тузиш.
|
Синф танасининг имплементацияси. C++ да синф танасини имплементация қилиш имкони мавжуд, Синфни эълон қилишда фақатгина синфдаги маълумотлар майдонини, конструкторларни, функцияларнинг прототипларини кўрсатиб ўтиш ҳисобланади, синфнинг реализацияси эса конструктор ва функцияларни тўлиқ кўрсатади. Синфни эълон қилиш ва реализация қилиш иккита ҳар хил файлларда ёзилиши мумкин. Фақат ҳар иккала файл ҳам бир хил номаланиши зарур. Синфни эълон қилиш файлининг кенгайтмаси .h (h сарлавҳа дегани) бўлади, реализациянинг кенгайтмаси эса .cpp бўлади.
1-Машқ. Экранда доира юзасини чоп этадиган дастурни Синф танасини имплементация қилиш орқали тузилсин. Бу ерда Circle синфи эълон қилиниши Circle.h файлида синф аъзолари эса Circle.cpp файлида ёзилиши дастурнинг клиент қисми эса main.cpp файлида ёзилсин.
Дастур коди:
Листинг 2.1 Circle.h
class Circle
{
public:
// Radius kruga
double radius;
// konstruktor po umolchaniyu
Circle();
// konstruktor s parametrom
Circle(double);
// Vozvrasheniye ploshadi kruga
double getArea();
};
Листинг 2.2 Circle.cpp
#include "Circle.h"
// Construct a default circle object
Circle::Circle()
{
radius = 1;
}
// Construct a circle object
Circle::Circle(double newRadius)
{
radius = newRadius;
}
// Return the area of this circle
double Circle::getArea()
{
return radius * radius * 3.14159;
}
Символ :: - оператор бўлиб, синф аъзоларини синфда кўрсатиш учун қўлланилади.
Бу ерда Circle:: ҳар бир конструктор ва функциянинг Circle синфига мансублиги, компиляторга мазкур конструкторлар ва функциялар Circle синфида эълон қилинганлигини кўрсатади.
2.3 листингда Circle синфининг реализацияси кўрсатилган.
Листинг 2.3 main.cpp
#include
#include "Circle.h"
using namespace std;
int main()
{
Circle circle1;
Circle circle2(5.0);
cout << "Ploshad kruga pri radiuse "
<< circle1.radius << " ravna " << circle1.getArea() << endl;
cout << "Ploshad kruga pri radiuse "
<< circle2.radius << " ravna " << circle2.getArea() << endl;
// Izmenennoye radius
circle2.radius = 100;
cout << "Ploshad kruga pri radiuse "
<< circle2.radius << " ravna " << circle2.getArea() << endl;
return 0;
}
Результат:
Ploshad kruga pri radiuse 1 ravna 3.14159
Ploshad kruga pri radiuse 5 ravna 78.5397
Ploshad kruga pri radiuse 100 ravna 31415.9
ДАСТУРЛАШ (С++) фанидан 2.1-лаборатория машғулотлари
Do'stlaringiz bilan baham: |