Kāda ir atšķirība starp virtuālo funkciju un tīri virtuālo funkciju C++?
Kāda ir atšķirība starp virtuālo funkciju un tīri virtuālo funkciju C++?

Video: Kāda ir atšķirība starp virtuālo funkciju un tīri virtuālo funkciju C++?

Video: Kāda ir atšķirība starp virtuālo funkciju un tīri virtuālo funkciju C++?
Video: Написание 2D-игр на C с использованием SDL Томаса Лайвли 2024, Novembris
Anonim

Galvenais atšķirība starp ' virtuālā funkcija” un “tīrā virtuālā funkcija ' vai tas ir ' virtuālā funkcija ' ir sava definīcija iekš bāzes klase un arī mantotās atvasinātās klases to definē no jauna. The tīra virtuāla funkcija nav definīcijas iekš bāzes klase, un visām mantotajām atvasinātajām klasēm tā ir jādefinē no jauna.

Tādā veidā, kas ir tīra virtuālā funkcija C++?

Tīras virtuālās funkcijas un abstraktās klases programmā C++ Mēs nevaram izveidot abstraktu klašu objektus. A tīra virtuāla funkcija (vai abstrakti funkciju ) iekšā C++ ir virtuālā funkcija kuriem mums nav īstenošanas, mēs to tikai deklarējam. A tīra virtuāla funkcija tiek deklarēts, deklarācijā piešķirot 0.

Papildus iepriekš minētajam, kas ir virtuālā funkcija un virtuālā klase? A virtuālā funkcija ir dalībnieks funkciju bāzes ietvaros klasē ko mēs no jauna definējam atvasinātajā klasē . Tas tiek deklarēts, izmantojot virtuāls atslēgvārds. Kad klasē kas satur virtuālā funkcija ir iedzimta, atvasināta klasē no jauna definē virtuālā funkcija lai atbilstu savām vajadzībām.

Kas šajā sakarā ir virtuālā un tīrā virtuālā funkcija, paskaidrojiet ar piemēru?

A tīra virtuāla funkcija ir funkciju kas ir jāignorē atvasinātajā klasē un tam nav jābūt definēts . A virtuālā funkcija tiek pasludināts par tīrs ” izmantojot ziņkārīgo =0 sintaksi. Priekš piemērs : class Base {

Kāda ir virtuālo funkciju izmantošana?

Virtuālās funkcijas pārliecinieties, ka ir pareizi funkciju tiek izsaukts objektam neatkarīgi no izmantotās atsauces (vai rādītāja) veida funkciju zvanu. Funkcijas ir deklarēti ar a virtuāls atslēgvārds bāzes klasē. Atrisināšana no funkciju zvans tiek veikts izpildlaikā.