Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
v_vide_shpor.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
277 Кб
Скачать
☆

16. Объектіге бағытталған программалаудың негізі. Базалық кластың хабарлануы, анықталуы.

Объектіге бағытталған программалаудың негізі - класс. Класс қолданушы анықтайтын мәліметтер типі болып табылады. Класста мәліметтер құрылымы мен оларды өңдеу функциялары бірігеді. Класстың нақты шамалары класс объектілері деп аталады. Объектіге бағытталған программа- лаудың негізгі қасиеттері: мұрагерлік, полиморфизм.Класс және объект терминдерінің айырмашылығы: объект пен класс терминдерінің қарым-қатынасын айқын ұғу үшін үйді алайық. Үйді алдымен тұрғызу қажет, ол үшін жұмысшылардың, құрылыс материалдарының және техниканың болуы жеткіліксіз. Алдымен сәулетші үйді жобалап, оның әрбір деталінің сызбасын даярлауы қажет. Бұл мысалда сызбалар классты, ал үй – сызбаларда берілген спецификациялар бойынша құрылған нақты объектіні білдіреді. Класстар – бұл нақты программада анықталған типтер. Класс –бұл объектілер емес, оларды құруға арналған шаблондар. Класстар class түйінді сөзінің көмегімен сипатталады. Класстың мәліметтері мәлімет-мүшелер деп, ал функциялары функция-мүшелер (әдістер) деп аталады. Класстың функция-мүшесін шақыру үшін объектінің атынан кейін нүкте (.) операциясын қолдану керек. Ал (::) операциясы функцияның қай классқа жататынын анықтайды.Базалық класс төмендегідей анықталады (синтаксис):

class <className>

{ private:

<жабық мәлімет-мүшелер>

<жабық конструкторлар>

<жабық функция-мүшелер>

protected:

<қорғалған (жеке)мәлімет-мүшелер >

< қорғалған конструкторлар>

< қорғалған функция-мүшелер>

public:

<ашық (жалпы)мәлімет-мүшелер >

<ашық конструкторлар>

<ашық деструкторлар>

<ашық функция-мүшелер>};

struct complex { public: int x,y; };

class complex

{ private: int x,y; };

Компилятор автоматты түрде public және private қояды. Құрылымда үндеместік бойынша public, класста private қолданылады.

17. Конструктор және оның қасиеттері. Көшіру конструкторлары.

Конструкторлар объектіні инициализа- циялау үшін арналған және автоматты түрде шақырылады. Конструктордың негізгі қасиеттері:

  • конструктор мән қайтармайды, void типі болса да;

  • класстың бірнеше конструкторлары болуы мүмкін, бірақ олар әр түрлі параметрлі;

  • параметрсіз шақырылған конструктор үндеместік конструкторы (конструктор по умолчанию) деп аталады;

  • параметрлі конструктор инициализация конструкторы деп аталады;

  • егер программист бірде–бір конструкторды көрсетпесе, онда компилятор оны өзі құрады;

  • ауқымды объектілердің конструкторлары main функциясы шақырылғанға дейін берілуі керек;

  • конструктор мұрагерлікке қалдырылмайды.

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

Берілу форматы:

T::T(const T&) {конструктор денесі},

мұндағы Т-конструктор аты.

Жаңа объект бар объектіні көшіру арқылы алынатын болса, онда көшіру конструкторы шақырылады.

18. Конструкторлар және қатарларды меншіктеу. Қатардың бөлігін қосу және меншіктеу функциялары.

1. Конструкторлар және қатарларды меншіктеу

string класында бірнеше конструкторлар анықталған:

string ();

string (const char *);

string (const char *, int n);

string ( string &);

Бірінші конструктор string типті бос объектіні құрады. Екінші конструктор ескі стильдегі қатардың негізінде string типті объектіні құрады, ал үшіншісі string типті объектіні құрады және бірінші параметр нұсқаған қатардан n символды жазады. Төртінші конструктор көшіру конструкторы болып табылады, ол параметр ретінде берілген объектінің көшірмесі арқылы жаңа объектіні құрады.

string класында үш меншіктеу операциясы анықталған:

string&operator= (const string&str);

string&operator= (const char*s);

string&operator= (char c);

Мысалы:

string s(“class”);

s1=s;

s1=“class”;

Қатар - нөл-символмен аяқталатын символдар массиві. С++-те қатармен жұмыс істеудің екі мүмкіндігі бар: С библиотекасынан (<string.h> немесе <cstring>) мұрагерлікке қалған функциялар және С++-тің string библиотекалық класы. С-дан мұрагерлікке қалған функциялар қолдану кезінде ыңғайсыз және қауіпті, себебі олар қатардың шекарадан шығып кетуін қадағаламайды.

string типті қатары ақпараттың шекарадан шығып кетуінен қорғалған және операциялар көмегімен жұмыс істеуге болады.

string класының функциялары: қатардың бөлігін қосу және меншіктеу, қатарларды түрлендіру, ішкі қатарды іздеу, қатардың бөліктерін салыстыру.

2.Қатардың бөлігін қосу және меншіктеу

Бір қатардың бөлігін екінші қатарға меншіктеу үшін assign функциясы қолданылады:

assign (const string&str);

assign (const string&str, size_type pos, size_type n);

assign (const char*s, size_type n);

Мысалы:

string s1(“telefon”), s2(“olar”);

s1.assign (s2); // нәтижесі:olar

s1.assign (s2, 1, 3); // нәтижесі: lar

Бір қатардың бөлігін екінші қатарға қосу үшін append функциясы қолданылады:

append (const string&str);

append(const string&str, size_type pos, size_type n);

append (const char*s, size_type n);

Мысалы:

string s1(“fon”), s2(“dar”);

s1.append (s2); // нәтижесі:fondar

s1.append (s2, 1, 2); // нәтижесі: fonar

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]