- •4. Идентификаторлар. Түйінді сөздер. Тұрақтылар.
- •5. Функцияларды хабарлау және анықтау. Функцияның параметрлері. Рекурсивті функциялар.
- •6. Негізгі мәліметтер типтері. Унарлы, бинарлы, тернарлы операциялар.
- •7.Программа құрылымы. Айнымалылар және өрнектер.
- •8. If, switch тармақталу операторлары. Шартты оператордың құрылымдық сұлбасы.
- •9.For, do while, while циклдік операторлары.
- •10. Goto, Break, continue, return басқаруды беру операторлары
- •11.Нұсқауыштар мен жиымдар. Екі өлшемді жиымдар.
- •Int ivar,*iptr;
- •12. Қатарлар. Қатарларға қолданылатын функциялар
- •13. Typedef, enum қолданушы анықтайтын мәліметтер типтері.
- •14. Struct, union қолданушы анықтайтын мәліметтер типтері.
- •16. Объектіге бағытталған программалаудың негізі. Базалық кластың хабарлануы, анықталуы.
- •17. Конструктор және оның қасиеттері. Көшіру конструкторлары.
- •18. Конструкторлар және қатарларды меншіктеу. Қатардың бөлігін қосу және меншіктеу функциялары.
- •19.Конструкторлар.Қатарларды түрлендіру, қатардың құрамын іздеу
- •22. Мұрагерлік. Жай және көптік мұрагерлік.
- •23. Абстрактілі класс. Виртуалды функциялар.
- •24. Ағымдар. Стандартты, файлдық және қатарлық ағымдар.
- •25. Манипуляторлар. Жай және параметрлі манипуляторлар
- •26. Stl (Standard Template Library) кітапханасының құрылымы. Итераторлар.
- •27. Тізбекті контейнерлер. Векторлар, кезектер.
- •28.Екі жақты кезектер, стектер, тізімдер
- •29. Ассоциативті контейнерлер. Сөздіктер. Жиындар.
- •30. Stl (Standard Template Library) кітапханасының құрылымы
19.Конструкторлар.Қатарларды түрлендіру, қатардың құрамын іздеу
Конструкторлар объектіні инициализа-циялау үшін арналған және автоматты түрде шақырылады.
Бір қатардың бөлігін екіншісіне қою (вставка) үшін insert функциясы қолданылады:
insert (size_type pos1, const string&str);
insert (size_type pos1, const string&str, size_type pos2, size_type n);
insert (size_type pos, const char*s, size_type n);
Қатардың бөлігін жою үш.erase функ. Қолд:erase (size_type pos=0, size_type n=npos);
Ол pos позициясынан бастап шақырылған қатардың n элементін жояды. Егер позиция көрсетілмесе, онда қатардың басынан бастап жояды.
Бүкіл қатарды тазалау қызметін clear функциясы атқарады: void clear();
Қатардың бөлігін ауыстыру (замена) үшін replace функциясы қолданылады:
replace (size_type pos1, size_type n1, const string&str);
replace (size_type pos1, size_type n1, const string&str, size_type pos2, size_type n2);
replace (size_type pos1, size_type n1, const char*s, size_type n2);
2қатарды бір-бірімен алмастыру үшін swap функциясы қолданылады:swap (string&s);
Қатардың бөлігін бөліп алу үшін substr функциясы қолданылады:
string substr (size_type pos=0, size_type n=npos) const;
string типті объектілерді ескі стильдегі қатарға түрлендіру үшін c_str функциясы қолданылады: const char*c_str() const;
Қатардың құрамын іздеу
Қатардың құрамын (подстрока) іздеу үшін бірнеше функциялар қарастырылған. Төменде негізгілері келтірілген:
size_type find(const string&str, size_type pos=0) const;
Шақырылған қатардан pos позициясынан бастап str қатарының сол жақтан енуін іздейді және егер қатар табылмаса, онда қатардың позициясын немесе npos-ны қайтарады. size_type find(char c, size_type pos=0) const;
Шақырылған қатардан pos позициясынан бастап с символының сол жақтан енуін іздейді және егер қатар табылмаса, онда қатардың позициясын немесе npos-ны қайтарады. size_type rfind(const string&str, size_type pos=npos) const;
Шақырылған қатардан pos позициясына дейін str қатарының оң жақтан енуін іздейді және егер қатар табылмаса, онда қатардың позициясын немесе npos-ны қайтарады. size_type rfind(char c, size_type pos=npos) const;
pos позициясынан бастап шақырылған қатардың символымен c символының сәйкес келмейтін сол жақ позициясын іздейді
size_type find_last_of(const string&str, size_type pos=npos) const;
pos позициясынан дейін шақырылған қатардың символымен str қатарының бірде-бір символы сәйкес келмейтін оң жақ позициясын іздейді.
size_type find_last_of(char c, size_type pos=npos) const;
20.Деструкторлар және оның қасиеттері. Деструктор – бұл берілген класстың нақты объектілерімен байланысқан ресурстарды босату үшін қолданылатын арнайы функция-мүшелер. Дестукторлар класс объектілерін автоматты түрде бұзады (разрушение). Форматы:
class className
{ public:
className(); // үнсіздік бойынша конструктор
// басқа конструкторлар
~className(); // деструкторды хабарлау
// басқа функция-мүшелер
};
Деструкторлар қасиеттері
Деструктор – объектіні жою кезінде шақырылатын әдіс
Аты класс атымен сәйкес келеді, ~ белгісінен басталады
Параметрлері жоқ
class Complex
{
…
public:
~Complex()
{
}
}
Деструкторда файлдарды жабуға және жадыны босатуға болады.
Мысалы
Қосымша
new операторы конструкторды, ал delete – деструкторды шақырады
Динамикалық жадыны қолдану, яғни жады компиляция кезінде емес, программаны қосу кезінде анықталады.
Жадыны бөлу
new опрератоы барлық мәліметтер типтері үшін жұмыс істейді
Жадыны босату
21. Класстың достық функциялары. Класстың шаблондары.
Класстың достық функциялары
Класстың достық функциялары- бұл класстың қорғалған (protected) және жабық (private) бөліктеріне енуді қамтамасыз ететін, бірақ берілген класстың мүшесі болып табылмайтын функциялар.
Достық функциялар friend түйінді сөзінің көмегімен класстың кез-келген бөлігінде хабарланады.
Достық функциялар классты анықтаудың сыртында анықталуы тиіс: көрінудің ауқымды аймағында немесе басқа класста.
Достық функциялар бірден бірнеше классқа дос болуы мүмкін.
Мысалы: Екі қатарды байланыстыру үшін арналған Tbl класының достық функциясы
Шаблондар.
Шаблондар класстар мен функциялардың шексіз туыстарын (родственные) құруға мүмкіндік береді. Шаблон мәліметтер типінің параметрі ретінде қолданылады.
Функция шаблонын анықтау синтаксисі:
template <шаблон_параметрлерінің_тізімі> функцияны_анықтау
Класс шаблонын анықтау синтаксисі:
template <шаблон_параметрлерінің_тізімі> классты_анықтау
Шаблон немесе шаблон аргументі бойынша функцияны немесе/және класстарды хабрлауды құру үрдісі шаблонның инстанцированиесі деп аталады.
Мысалы: Функциялар шаблоны: квадраттау және екі айнымалының мәндерін алмастыру
template <class T> T sqr(T val) { // T – бұл шаблон параметрінің типі
return val*val;
}
template <class T> void swap(T& a, T& b) {
T temp=a;
a=b;
b=temp;
}
int main() {
int a=10, b=20;
cout<<"Before: "<<"a=="<<a<<" b=="<<b<<endl;
swap(a,b); // swap<int>(int, int)шақырылатын болады
cout<<"After: "<<"a=="<<a<<" b=="<<b<<" a^2=="<<sqr(a)<<endl; // int sqr<int>(int)
double da=acos(-1.), db=exp(0.5);
cout.precision(15); // баспа кезінде цифрлар санын береміз
cout<<"Before: "<<"da=="<<da<<" db=="<<db<<endl;
swap(da,db); // swap<double>(double, double) шақырылады
cout<<"After: "<<"da=="<<da<<" db=="<<db<<" da^2=="
<<sqr(da)<<endl; // double sqr<double>(double)
return 0;}
Нәтижесі:
Before: a==10 b==20
After: a==20 b==10 a^2==400
Before: da==3.14159265358979 db==1.64872127070013
After: da==1.64872127070013 db==3.14159265358979 da^2==2.71828182845905
