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

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

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