virtual va abstract funksiyalar

DOCX 22,1 КБ Бесплатная загрузка

Предварительный просмотр (5 стр.)

Прокрутите вниз 👇
1
1698819875.docx virtual va abstract funksiyalar reja : 1. virtual funksiyalar. 2. abstract funksi yalar. /docprops/thumbnail.emf virtual va abstract funksiyalar reja: 1. virtual funksiyalar. 2. abstract funksiyalar. virtual va abstract funksiyalar reja: 1. virtual funksiyalar. 2. abstract funksiyalar. 1. virtual funksiyalar синф иерархиясидги турли сифларнинг объектларини тўплаганингизда, ва компонентлик функциясини фаоллаштирганингизда, тўғри бўлган компонентлик функциясини қўлланиллишини истайсиз. масалан, display компонентлик функциясини question* кўрсатгичи учун чақирганингизда, бу choicequestionга ишора қилинганда содир бўлиб, вариантлар намойиш этилишини хохлайсиз. самарадорлик нуқтаи назаридан, бу дефолт c++ эмас. дефолт : quiz[i]­>display(); чақириғи доимо question::displayни чақиради,чунки quiz[i] туриquestion*га оид. шунгақарамай, бухолатдасизҳақиқатданҳамquiz[i]гаишорақилувчиобъектнингмуҳимтуринианиқлашниистайсиз, уёquestionёкиchoicequestionобъектибўлади, кейинэсатўғрикеладиганфункцияничақираерасиз. c++да, сиз компиляторни, функциянинг чақирилиши мос келувчи функция танловидан олдин бўлиши кераклиги ҳақтда огоҳлантиришингиз шарт, бу эса циклдаги ҳар бир итерация учун турличадир. бу мақсадда, virtual яширин сўзни ишлатинг: class question { public: question(); void set_text(string question_text); void set_answer(string correct_response); virtual bool check_answer(string response) const; virtual void display() const; private: ... }; virtualяширинсўзасосийсинфдаишлатилишикерак. ёрдамчисинфдабирномватурлипараметртурларигиэгабўлганфункцияларнингбарчасикейинчаликавтоматикравишдавиртулхолатгаўтади. бироқ, …
2
ктуалтуригатегишлибўлганфункцияничақиради, бундаdis-play[i]—ёкиquestion::displayгаёбўлмаса, choicequestion::displayгаишорақилади. quiz массиви саволларнинг иккиси аралашмасини тўплайди. бундай тўплам poly-morphic деб номланади (яъни, “бир қанча шакллар” дегани). полиморфик тўпламдаги объектлар бир оз ўхшашликка эга бўлсаларда, бир турга мансуб бўлишлари шарт эмас. меросхўрлик ушбу ўхшашликни ифодалаш учун ишлатилади,ва виртуал функциялар ҳаракатдаги вариацияларга имкон беради. виртуалфункциялардастурларгаўтақайишқоқликхусусиятиниберадилар. саволтақдимотициклифақатгинаумумиймеханизмнитасвирлайди: “саволнинамойишэтинг, жавоболинг, ваунитекширинг”. ҳарбиробъект, махсусвазифаларниқандайбажаришниўзибилади: “саволнинамойишэтинг” ва “жавобнитекширинг”. виртуалфункцияларданфойдаланишдастурларникенгайтиришгаонсонликяратади. тасаввурқилинг, бизгаҳисобкитобучунтахминийжавоболишимизмумкинбўлганянгисаволтурикерак. қилишимизкеракбўлганнарсабу- ўзинигcheck_answer функциясигаэгабўлган numericquestionянгисинфиниўрнатишдир. сўнграquizмассивинианиқсаволлар, вариантлисаволларварақамлисаволлараралашмасибилантўлдиришимизмумкин. саволларнинамойишқилувчикодумуманўзгартирилмаслигикерак! виртуалфункциялардагичақириқларавтоматикравишдаянгиўрнатилгансинфлардантўғрикомпонентликфункцияларинитанлаболади. 2. abstract funksiyalar буердатестдастуринингохиргиверсиясиберилганбўлиб, ундакўрсатгичларвавиртуалфункцияларишлатилган. дастурниишлатганингизда, виртуалфункцияларгамоскелувчиверсияларчақирилганлигиникўрасиз. ( question.cppваchoicequestion.cppфайлларикитобингизнингиккинчиқисмидагикодларгакиритилган.) ch10/quiz3/question.h 1 #ifndef question_h 2 #define question_h 3 4 #include 5 6using namespace std; 7 8class question 9 { 10public: 11 /** 12constructs a question with empty question and answer. 13 */ 14 question(); 16 /** 17@param question_text the text of this question 18 */ 19void set_text(string question_text); 20 21 /** 22@param correct_response the answer for this question 23 */ 24void set_ans
3
wer(string correct_response); 25 26 /** 27@param response the response to check 28@return true if the response was correct, false otherwise 29 */ 30virtualbool check_answer(string response) const; 31 32 /** 33displays this question. 34 */ 35virtualvoid display() const; 36private: 37 string text; 38 string answer; 39 }; 40 41 #endif ch10/quiz3/choicequestion.h 1 #ifndef choicequestion_h 2 #define choicequestion_h 3 4 #include 5 #include "question.h" 6 7class choicequestion : public question 8 { 9public: 10 /** 11constructs a choice question with no choices. 12 */ 13 choicequestion(); 14 15 /** 16adds an answer choice to this question. 17@param choice the choice to add 18@param correct true if this is the correct choice, false otherwise 19 */ 20void add_choice(string choice, bool correct); 21 22virtualvoid display() const; 23private: 24 vector choices; 25 }; 26 27 #endif ch10/quiz3/test.cpp 1 #include 2 #include "question.h" 3 #include "choicequestion.h" 4 5int main() 6 { 7 string response; 8 cout …
4
. 2005. с.320. 7. к.п.абдурахманов, ў.эгамов “физика курси” дарслиги, тошкент, 2010 й. 8. п.а.типлер, р.а.ллуэллин современная физика (лучший зарубежный учебник в двух томах) м. мир.2007.с.496 (1том) 9. п.а.типлер, р.а.ллуэллин современная физика (лучший зарубежный учебник в двух томах) м. мир.2007.с.416 (2том) 10. трофимова т.и. курс физики.м.высшая щкола 1999.с.543 интернет сайтлар: 1. www.ziyonet.uz; 2. www.estudy.uz; 3. www.fizika.uz; 4. www.elearning.uz; 5. www.bilim.uz; 6. www.edx.uz; 7. www.my.estudy.uz; 8. www.conrsera.org.uz;
5
virtual va abstract funksiyalar - Page 5

Хотите читать дальше?

Скачайте полный файл бесплатно через Telegram.

Скачать полный файл

О "virtual va abstract funksiyalar"

1698819875.docx virtual va abstract funksiyalar reja : 1. virtual funksiyalar. 2. abstract funksi yalar. /docprops/thumbnail.emf virtual va abstract funksiyalar reja: 1. virtual funksiyalar. 2. abstract funksiyalar. virtual va abstract funksiyalar reja: 1. virtual funksiyalar. 2. abstract funksiyalar. 1. virtual funksiyalar синф иерархиясидги турли сифларнинг объектларини тўплаганингизда, ва компонентлик функциясини фаоллаштирганингизда, тўғри бўлган компонентлик функциясини қўлланиллишини истайсиз. масалан, display компонентлик функциясини question* кўрсатгичи учун чақирганингизда, бу choicequestionга ишора қилинганда содир бўлиб, вариантлар намойиш этилишини хохлайсиз. самарадорлик нуқтаи назаридан, бу дефолт c++ эмас. дефолт : quiz[i]­>display(); чақириғи доимо question::displayни чақир...

Формат DOCX, 22,1 КБ. Чтобы скачать "virtual va abstract funksiyalar", нажмите кнопку Telegram слева.

Теги: virtual va abstract funksiyalar DOCX Бесплатная загрузка Telegram