La mia comprensione di base è che non esiste un'implementazione per una pura funzione virtuale, tuttavia, mi è stato detto che potrebbe esserci un'implementazione per pura funzione virtuale. class A { public: virtual void f() = 0; }; void A::f() { cout<<"Test"<<endl; } Il codice sopra è OK? Qual è …
È sbagliato scrivere: class A { public: virtual ~A() = 0; }; per una classe base astratta? Almeno questo si compila in MSVC ... Si bloccherà in fase di esecuzione?
Capisco la necessità di un distruttore virtuale. Ma perché abbiamo bisogno di un puro distruttore virtuale? In uno degli articoli del C ++, l'autore ha menzionato il fatto che usiamo un puro distruttore virtuale quando vogliamo fare un abstract di classe. Ma possiamo fare un abstract di classe rendendo virtuale …
Dichiariamo sempre una funzione virtuale pura come: virtual void fun () = 0 ; Cioè, è sempre assegnato a 0. Quello che capisco è che questo è per inizializzare la voce vtable per questa funzione su NULL e qualsiasi altro valore qui provoca un errore di tempo di compilazione. Questa …
A volte noto programmi che si bloccano sul mio computer con l'errore: "chiamata di funzione virtuale pura". Come fanno questi programmi a compilare anche quando un oggetto non può essere creato da una classe astratta?
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.