Виртуалды функция мен функцияны қайта анықтаудың айырмашылығы неде?
Виртуалды функция мен функцияны қайта анықтаудың айырмашылығы неде?

Бейне: Виртуалды функция мен функцияны қайта анықтаудың айырмашылығы неде?

Бейне: Виртуалды функция мен функцияны қайта анықтаудың айырмашылығы неде?
Бейне: Как работают все плагины ChatGPT подробно с примерами 2024, Мамыр
Anonim

Виртуалды функциялар статикалық бола алмайды және дос бола алмайды функциясы басқа сыныптан. Олар әрқашан негізгі сыныпта анықталады және ауыстырылды туынды сыныпта. Бұл туынды сынып үшін міндетті емес қайта анықтау (немесе қайта анықтаңыз виртуалды функция ), бұл жағдайда базалық класс нұсқасы функциясы пайдаланылады.

Сонымен қатар, виртуалды функция мен таза виртуалды функцияның айырмашылығы неде?

Басты арасындағы айырмашылық ' виртуалды функция' және 'таза виртуалды функция 'бұл ма' виртуалды функция ' деген анықтамасы бар ішінде базалық класс, сондай-ақ мұрагерлік туынды сыныптар оны қайта анықтайды. The таза виртуалды функция анықтамасы жоқ ішінде базалық класс және барлық мұраланған туынды сыныптар оны қайта анықтауы керек.

Содан кейін сұрақ туындайды, C++ тілінде функцияны қайта анықтау дегеніміз не? C++ функциясын қайта анықтау . Егер туынды класс бірдей анықтайды функциясы оның негізгі класында анықталғандай, ол ретінде белгілі функцияны қайта анықтау C++ тілінде. Ол орындалу уақытының полиморфизміне қол жеткізу үшін қолданылады. Ол сізге нақты іске асыруды қамтамасыз етуге мүмкіндік береді функциясы ол қазірдің өзінде оның базалық класымен қамтамасыз етілген.

Сол сияқты, адамдар неге виртуалды функцияларды пайдаланамыз?

Виртуалды функциялар болып табылады пайдаланылады «Орындалу уақыты полиморфизмін» қолдау. Қашан виртуалды функция Негізгі класс көрсеткішін пайдалану арқылы шақырылады, компилятор Runtime параметрінің қай нұсқасын шешеді функциясы яғни Негізгі класс нұсқасы немесе қайта анықталған туынды класс нұсқасы шақырылады. Бұл жұмыс уақытының полиморфизмі деп аталады.

C++ тілінде виртуалды емес функцияны қайта анықтай аласыз ба?

c++ тілінде барлық сынып мүшесі функциялары болып табылады жоқ - виртуалды әдепкі бойынша. Олар алады жасалуы виртуалды пайдалану арқылы виртуалды ішіндегі кілт сөз функциясы қол қою. Жоғарыда айтылғандай егер the функциясы базалық класс жасалған виртуалды содан кейін функциясы туынды немесе бала сыныптары функциясы аттас бас тарта алады базалық класс функциясы.

Ұсынылған: