Ո՞րն է տարբերությունը վիրտուալ ֆունկցիայի և գերակայող ֆունկցիայի միջև:
Ո՞րն է տարբերությունը վիրտուալ ֆունկցիայի և գերակայող ֆունկցիայի միջև:

Video: Ո՞րն է տարբերությունը վիրտուալ ֆունկցիայի և գերակայող ֆունկցիայի միջև:

Video: Ո՞րն է տարբերությունը վիրտուալ ֆունկցիայի և գերակայող ֆունկցիայի միջև:
Video: Ո՞րն է ֆունկցիայի որոշման տիրույթը | Հանրահաշիվ | «Քան» ակադեմիա 2024, Մայիս
Anonim

Վիրտուալ գործառույթներ չի կարող լինել ստատիկ և չի կարող նաև ընկեր լինել ֆունկցիան մեկ այլ դասի. Նրանք միշտ սահմանվում են բազային դասում և գերագնահատված ածանցյալ դասում։ Դա ածանցյալ դասի համար պարտադիր չէ գերագնահատել (կամ նորից սահմանել վիրտուալ գործառույթ ), այդ դեպքում բազային դասի տարբերակը ֆունկցիան է օգտագործվում.

Ավելին, ո՞րն է տարբերությունը վիրտուալ ֆունկցիայի և մաքուր վիրտուալ ֆունկցիայի միջև:

Գլխավոր հիմնական միջև տարբերությունը ' վիրտուալ ֆունկցիա» և «մաքուր վիրտուալ ֆունկցիա «դա է» վիրտուալ գործառույթ -ն ունի իր սահմանումը մեջ բազային դասը և նաև ժառանգական ստացված դասերը վերասահմանում են այն: Այն մաքուր վիրտուալ գործառույթ սահմանում չունի մեջ բազային դաս, և ժառանգական ստացված բոլոր դասերը պետք է վերասահմանեն այն:

Հետագայում հարցն այն է, թե ինչն է գերակայող ֆունկցիան C++-ում: C++ ֆունկցիայի գերակայող . Եթե ստացված դասը սահմանում է նույնը ֆունկցիան ինչպես սահմանված է իր բազային դասում, այն հայտնի է որպես գերակայող ֆունկցիա C++-ում։ Այն օգտագործվում է գործարկման ժամանակի պոլիմորֆիզմի հասնելու համար: Այն հնարավորություն է տալիս ապահովելու կոնկրետ իրականացում ֆունկցիան որն արդեն տրամադրված է իր բազային դասի կողմից։

Նմանապես, մարդիկ հարցնում են, թե ինչու ենք մենք օգտագործում վիրտուալ գործառույթները:

Վիրտուալ գործառույթներ են օգտագործված աջակցել «Գործարկման ժամանակի պոլիմորֆիզմին»: Երբ որ վիրտուալ գործառույթ կանչվում է Base Class-ի ցուցիչի միջոցով, Կոմպիլյատորը Runtime-ում որոշում է, թե որ տարբերակը ֆունկցիան Այսինքն՝ պետք է կանչվի Base Class տարբերակը կամ գերագնահատված ստացված դասի տարբերակը: Սա կոչվում է Run time polymorphism:

Կարո՞ղ եք վերացնել ոչ վիրտուալ ֆունկցիան C++-ում:

c++-ում՝ դասի բոլոր անդամները գործառույթները են ոչ - Վիրտուալ ըստ նախնականի. Նրանք կարող է պատրաստվել Վիրտուալ օգտագործելով Վիրտուալ հիմնաբառի մեջ ֆունկցիան ստորագրությունը։ Ինչպես նշվեց վերևում եթե որ ֆունկցիան պատրաստվում է բազային դասի Վիրտուալ ապա ֆունկցիան ածանցյալ կամ մանկական դասարանների ֆունկցիան նույն անունով կարող է վերացնել Հիմնական դասը ֆունկցիան.

Խորհուրդ ենք տալիս: