Errori, bug, domande - pagina 1678
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Potete usarlo per fare un analogo della parola chiave final, proibendo esplicitamente un'ulteriore ereditarietà.
Ma come mostra l'esempio precedente, non si può fare un'analogia. Dovete specificare final anche per i metodi privati.
Per l'eredità pubblica, l'accesso massimo dovrebbe essere protetto, non privato.
E la funzione nell'esempio viene sovraccaricata esattamente?
Per l'eredità pubblica, l'accesso massimo dovrebbe essere protetto, non privato.
E nell'esempio, la funzione è esattamente sovraccaricata?
Giusto. L'ho appena scoperto io stesso.
Se lo fai
BASE() {Func();} // вместо void Init() {Func();} Вызов Base.Init() - убрать конечно.
Potete controllare voi stessi dopo averlo eseguito e vedere se sapete cosa dovrebbe succedere.
Nel log del terminale ottengo
vanno maldestramente alla posizione specificata nel codice sorgente. Sarebbe comodo se si potesse fare doppio clic su un tale messaggio nel log del terminale e arrivare direttamente alla linea specificata.
Se qualcuno lo sostiene, parli.
Il classico è un'interfaccia in una classe base con ridefinizione nei discendenti:
Classico è quando i metodi virtuali protetti/pubblici sono sovrascritti. Ma per i privati non è così ovvio (in termini di applicazione). Grazie per aver risposto.
Sì, ho già cancellato il mio esempio senza vedere la tua risposta, è stato davvero un peccato.
Aggiornamento: anch'io mi sono confuso nelle basi mentre ti rispondevo. Tutto era corretto in quell'esempio, non avrei dovuto cancellarlo. Lo stesso esempio di nuovo con un esempio d'uso:
Aggiornamento: anch'io ero confuso dalle basi mentre ti rispondevo. Tutto era corretto in quell'esempio, non avrei dovuto cancellarlo. Di nuovo con un esempio di come usarlo:
Il compilatore non fa una piega.
Questo non è un buon esempio, poiché non possiamo vedere l'interfaccia CAnimal utilizzata da nessuna parte. Anche due discendenti sono stati resi pubblici. Capisco l'argomento, quindi va bene.
Esempio normale. Un animale astratto emette fondamentalmente dei suoni, ma indefiniti, quindi non possiamo chiamare il metodo Speak() su di esso; può essere chiamato solo su un animale di una specie specifica. Perciò dichiariamo un metodo virtuale chiuso in una classe base, e lo sovrascriviamo nei discendenti e lo apriamo.
Esempio normale. Un animale astratto emette fondamentalmente dei suoni, ma indefiniti, quindi non possiamo chiamare il metodo Speak() su di esso; può essere chiamato solo su un animale di una specie specifica. Quindi dichiariamo un metodo virtuale chiuso in una classe base, e lo sovrascriviamo nei discendenti e lo apriamo.