Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'ereditarietà in COM non implica il riutilizzo del codice. Poiché nessuna implementazione è associata alle interfacce, l'ereditarietà dell'interfaccia non implica l'ereditarietà del codice. Significa solo che il contratto associato a un'interfaccia viene ereditato in modo di classe base pura-virtuale C++ e modificato, aggiungendo nuovi metodi o qualificando ulteriormente l'utilizzo consentito dei metodi. Non esiste alcuna ereditarietà selettiva in COM. Se un'interfaccia eredita da un'altra, include tutti i metodi definiti dall'altra interfaccia.
L'ereditarietà viene usata con moderazione nelle interfacce COM predefinite. Tutte le interfacce predefinite (e tutte le interfacce personalizzate definite) ereditano le relative definizioni dall'interfaccia importante IUnknown, che contiene tre metodi fondamentali: QueryInterface, AddRefe Release. Tutti gli oggetti COM devono implementare l'interfaccia IUnknown perché fornisce i mezzi, usando QueryInterface, per spostarsi liberamente tra le diverse interfacce supportate da un oggetto e i mezzi per gestire la durata usando AddRef e Release.
Nella creazione di un oggetto che supporta aggregazione, è necessario implementare un set di funzioni di IUnknown per tutte le interfacce, nonché un'interfaccia IUnknown autonoma. In ogni caso, qualsiasi implementatore di oggetti implementerà metodi IUnknown. Per altre informazioni, vedere la sezione Using and Implementing IUnknown.
Anche se esistono alcune interfacce che ereditano le relative definizioni da una seconda interfaccia oltre a IUnknown, la maggioranza eredita semplicemente i metodi di interfaccia IUnknown. Ciò rende la maggior parte delle interfacce relativamente compatta e facile da incapsulare.
Argomenti correlati