mi piacerebbe scrivere un
classe X (questo), che
eredita da una (base) possono
eseguire i metodi di B (?) E devono
implementare i membri di C (interfaccia).Esiste qualcosa come una classe che può essere implementata?
L'implementazione di A e C non rappresenta un problema. Ma poiché X non può derivare da più classi, sembra impossibile avere X ereditare la logica di A e B. Si noti che A è la classe base molto importante e B è quasi un'interfaccia ma contiene un comportamento eseguibile. Il motivo per cui non voglio che B sia un'interfaccia è perché il comportamento è lo stesso per ogni classe che lo eredita o lo implementa.
ne ho veramente deve dichiarare B come interfaccia e attuare le stesse identiche 10 righe di codice per ogni X che ha bisogno il comportamento di B?
2 mesi più tardi
Attualmente sto imparando C++ per il suo utilizzo in UE4 (Unreal Engine 4).
Poiché C++ è molto meno stringenti rispetto a C# che contiene in realtà un implementazione IDOM termine modello che descrive questo comportamento: Questi sono chiamati mixin s.
È possibile leggere un paragrafo relativo al mixin C++ here a pagina 9 (secondo paragrafo).
Perché non si eredita B da A o viceversa? –
Perché non puoi usare la composizione qui? Delega i metodi di B a un'istanza di B ...(È molto difficile parlare di questo genere di cose in un modo così astratto. Sarebbe più utile se fornissi un esempio concreto.) –
@ k4rlsson Perché non ogni X richiede B (Lo sviluppatore dovrebbe essere in grado di implementarlo o no) –