Domande taggate «abstract-class»

Una classe astratta è una classe che non può essere istanziata. Generalmente sono pensati per essere estesi / sottoclassi e generalmente hanno "metodi astratti" che devono essere implementati da sottoclassi.

7
Quando utilizzare le classi astratte anziché le interfacce con i metodi di estensione in C #?
"Classe astratta" e "interfaccia" sono concetti simili, con l'interfaccia che è la più astratta delle due. Un fattore di differenziazione è che le classi astratte forniscono implementazioni di metodi per le classi derivate quando necessario. In C #, tuttavia, questo fattore di differenziazione è stato ridotto dalla recente introduzione di …


4
In C ++ perché e come rallentano le funzioni virtuali?
Qualcuno può spiegare in dettaglio, come funziona esattamente la tabella virtuale e quali puntatori sono associati quando vengono chiamate funzioni virtuali. Se sono effettivamente più lenti, puoi mostrare che il tempo impiegato dalla funzione virtuale per eseguire è più dei normali metodi di classe? È facile perdere traccia di come …




5
Gli enum creano interfacce fragili?
Considera l'esempio di seguito. Qualsiasi modifica all'enumerazione ColorChoice influisce su tutte le sottoclassi IWindowColor. Gli enum tendono a causare interfacce fragili? C'è qualcosa di meglio di un enum per consentire una maggiore flessibilità polimorfica? enum class ColorChoice { Blue = 0, Red = 1 }; class IWindowColor { public: ColorChoice …

2
Tipo eccellente di eccezione astratta
Se il lancio System.Exceptionè considerato così male, perché non è stato Exceptionfatto abstractin primo luogo? In questo modo, non sarebbe possibile chiamare: throw new Exception("Error occurred."); Ciò imporrebbe l'uso di eccezioni derivate per fornire maggiori dettagli sull'errore che si è verificato. Ad esempio, quando voglio fornire una gerarchia di eccezioni …







7
Quali sono i ruoli di singoli, classi astratte e interfacce?
Sto studiando OOP in C ++ e, anche se sono consapevole delle definizioni di questi 3 concetti, non riesco davvero a capire quando o come usarlo. Usiamo questa classe per l'esempio: class Person{ private: string name; int age; public: Person(string p1, int p2){this->name=p1; this->age=p2;} ~Person(){} void set_name (string parameter){this->name=parameter;} void …

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.