Domande da un "manichino" - pagina 129

 
MetaDriver:

E i puntatori alle strutture sarebbero molto utili, e non devono essere dinamici - la cosa principale è che un array di indici può essere ordinato al posto delle strutture stesse.

// In molti casi, non è desiderabile sostituire le strutture con le classi. Sono economici (nessuna tabella di metodo virtuale) e contengono dati "solidi".

In generale, questo è il motivo per cui stiamo per introdurre l'ereditarietà, si può sempre ottenere un handle per una classe reversibile.
 
Urain:

Quelli che abbiamo iniziato con l'insieme da cui la cellula è ereditata, quelli convergono in una classe, poi divergono di nuovo in organi e convergono di nuovo in una classe di persone, e divergono di nuovo in professioni.

Non so voi, ma le persone normali non si dividono in organi. L'ereditarietà multipla è una cosa molto discutibile, e non per niente nel più avanzato linguaggio C# si è deciso di rifiutare questo meccanismo in favore delle interfacce. Pensate che gli sviluppatori C# non sapessero cosa stavano facendo?
 
C-4:
Non so voi, ma la gente normale non dona gli organi. L'ereditarietà multipla è una cosa molto controversa, e non per niente nel più avanzato linguaggio C# si è deciso di rifiutare questo meccanismo in favore delle interfacce. Pensate che gli sviluppatori C# non sapessero cosa stavano facendo?

E la donazione di organi? :)

La questione è discutibile e non completamente chiusa, il fatto è che C++ ha l'ereditarietà multipla, MQL è posizionato come linguaggio simile a C++, perché no.

 
C-4:
Non so voi, ma le persone normali non entrano negli organi. L'ereditarietà multipla è una cosa molto controversa, e non per niente nel più avanzato linguaggio C# si è deciso di rifiutare questo meccanismo in favore delle interfacce. Pensate che gli sviluppatori C# non sapessero cosa stavano facendo?

Bazinga :)

Prima di tutto, perché diavolo C# è diventato improvvisamente il linguaggio più avanzato?

In secondo luogo, in C# hanno deciso di negare l'ereditarietà multipla delle classi in favore dell'ereditarietà multipla delle interfacce. ))) È più facile da implementare.

Vai a imparare la materia.

TheXpert:

Non a prima vista, ma l'ho usato più di una volta. E praticamente senza alcuna variante.

Mi rimangio tutto: ho usato l'eredità virtuale solo per eliminare il problema della scelta ambigua della superclasse.
 
mql5:
In generale, è per questo che introdurremo l'ereditarietà, si può sempre ottenere un manico per una classe reversibile...

...e una tabella di metodi virtuali come peso, che è esattamente ciò che volevamo evitare :) Altrimenti la questione non sarebbe sorta.

Ok, non è fatale, userò un ulteriore array di indici.
Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
TheXpert:

Bazinga :)

1. Prima di tutto, perché diavolo C# è improvvisamente il linguaggio più avanzato?

(2) In secondo luogo, in C# è stato deciso di abbandonare l'ereditarietà multipla delle classi in favore dell'ereditarietà multipla delle interfacce. ))) È più facile da implementare.

1) Quali sono esattamente le sue obiezioni? :)

2) Chiediamo interfacce con ereditarietà multipla. :)

 
TheXpert:

Bazinga :)

Prima di tutto, perché diavolo C# è diventato improvvisamente il linguaggio più avanzato?

In secondo luogo, in C# è stato deciso di abbandonare l'ereditarietà multipla delle classi in favore dell'ereditarietà multipla delle interfacce. ))) È più facile da implementare.

Vai a imparare la materia.

L'eredità virtuale è stata usata solo per rimuovere il problema dell'ambiguità della selezione delle superclassi.

Non darò argomenti a favore dell'aggregazione, penso che li conosciate da soli. Allo stesso modo, conosco gli argomenti a favore dell'eredità multipla. E ci sono molte giustificazioni sotto di esse, sia da una parte che dall'altra. Credo che sia una questione di chi è più vicino a cosa. Nel caso della nostra particolare azienda l'aggregazione è molto preferibile, in quanto è più facile da sviluppare e mantenere da parte del nostro team.

Urain:

Quelli che abbiamo iniziato con un insieme da cui si eredita una cellula, quelli convergevano in una classe,poi divergevano di nuovo in organi e convergevano di nuovo in una classe umana, poi divergevano di nuovo in professioni.

La professione che hai, si scopre, è l'erede della gabbia, il che è in qualche modo (inaspettato) vero :). Per determinare cosa è meglio usare in questo caso particolare, è necessario determinare la relazione tra i due oggetti:

  1. L'oggetto A è l'oggetto B - eredità
  2. L'oggetto A consiste in (ha, contiene) l'oggetto B - composizione

 
MetaDriver:

1. quali sono esattamente le obiezioni? :)

2. chiediamo delle interfacce. con ereditarietà multipla. allora sosterrò. :)

2. Io sostengo
 
MetaDriver:

1. quali sono esattamente le obiezioni? :)

Ogni lingua ha il suo campo di applicazione. Dire che una lingua è "la più avanzata" in generale è assurdo.

2. chiediamo delle interfacce. con ereditarietà multipla. allora sosterrò. :)

Oh, ma dai! Che differenza fa come si chiama? Il punto non cambia quasi mai.
 

C# è sicuramente il linguaggio più avanzato. Tutto il resto è troppo antiquato o troppo specializzato.

L'ereditarietà multipla delle interfacce non è la stessa dell'ereditarietà multipla delle classi. Quest'ultimo ha una gerarchia dall'alto verso il basso, e per questo i rami discendenti possono intrecciarsi molto tra loro, causando una notevole confusione e disordine nell'architettura del progetto. Tuttavia, l'ereditarietà delle interfacce è molto più semplice: avete dei metodi unificati, per esempio la ricerca o l'ordinamento, e se volete agganciare la vostra classe ad essi, scrivete una corrispondente interfaccia di interazione. Questa non è una stampella. Questo è C++ una grande stampella scritta per il linguaggio C.