
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
Come vengono stabiliti i collegamenti incrociati tra classi discendenti con una radice comune da qualche parte in profondità nella gerarchia?
Per esempio: La classe F e la classe Z sono gli anelli finali di una catena di eredità con una radice comune nella gerarchia, la classe A.
Come si possono ottenere dati o metodi della classe Z dalla classe F?
Non si può. Non esiste una cosa del genere. Ma non ce n'è bisogno.
Dopo aver creato gli oggetti potete passare un puntatore da un oggetto al secondo e un puntatore dal secondo oggetto al primo.
Anche se, se stiamo parlando specificamente della classe, è possibile indirizzare qualsiasi oggetto attraverso due punti. Ma a cosa vi serve? A volte è necessario, naturalmente, ma è una caratteristica OOP estremamente minore.
Assolutamente no. Non esiste una cosa del genere. Ma non è necessario.
Dopo aver creato gli oggetti, potete passare un puntatore di un oggetto al secondo e un puntatore del secondo al primo.
Anche se, se stiamo parlando specificamente della classe, si può fare riferimento a qualsiasi cosa attraverso due punti. Ma a cosa vi serve?
Esempio: La classe F memorizza i metodi Colour e Length, mentre la classe Z memorizza i metodi Sound e Width.
Appare un oggetto che ha due proprietà, Lunghezza e Larghezza, ma sono calcolate da classi F e Z diverse. Cosa fare? Creare una classe separata con la ripetizione di questi metodi, o come accedervi? (Con quattro punti?).
Esempio: La classe F memorizza i metodi Colour e Length, mentre la classe Z memorizza i metodi Sound e Width.
Appare un oggetto che ha due proprietà, Lunghezza e Larghezza, ma sono calcolate da classi F e Z diverse. Cosa fare? Creare una classe separata con la ripetizione di questi metodi, o come accedervi? (Con quattro punti?).
Si potrebbe creare una nuova classe e includervi le classi F e Z.
Potete creare una nuova classe e includervi le classi F e Z.
Potete creare una nuova classe e includervi le classi F e Z.
Oppure potete fare un metodo nella classe in cui volete i dati dell'altra classe per ottenere un puntatore alla classe richiesta.
Un "arco" di classe? Capito, grazie.
Potete semplicemente ottenere un puntatore alla classe che volete, e usare il puntatore per ottenere un oggetto classe. Ma bisogna fare attenzione a non ottenere un puntatore a un oggetto di classe vuoto o nuovo.
Potete semplicemente ottenere un puntatore alla classe desiderata e usare il puntatore per ottenere un oggetto classe. Ma bisogna fare attenzione a non ottenere un puntatore a un oggetto di classe vuoto.
Un corso di "inchino"? Capisco, grazie.
Nell'esempio
La classe Y contiene variabili con tipi di classi F e Z.
Ma se avete già oggetti delle classi F e Z creati e usati da qualche parte, non potrete accedervi nell'oggetto Y. Ci saranno due nuovi oggetti di classe F e Z nell'oggetto Y.
E per avere accesso agli oggetti delle classi F e Z creati in precedenza e già utilizzati, è necessario ottenere riferimenti agli oggetti F e Z nella classe Y - poi la classe Y può operare con quei dati, che sono già scritti in F e Z, invece di utilizzare nuovi e incontaminati F e Z.
Ma se create un tale oggetto, allora F e Z in esso daranno accesso alle classi F e Z, e dovete riempirle solo tramite la classe Y - di nuovo, date accesso agli oggetti F e Z da esso, ottenete un puntatore all'oggetto che vi serve e lavorate con esso tramite il puntatore.
Sottigliezze. Capisco. La gerarchia dell'eredità è conveniente quando i dati sono chiaramente classificabili, predefiniti e non ambigui. Man mano che gli oggetti diventano più complessi, possono apparire combinazioni di metodi e proprietà non destinati alle classi e questo richiede la costruzione di "legami", cioè collegamenti incrociati tra le classi. Questo non è sempre conveniente e può rompere il bellissimo schema di distribuzione e costringerlo ad essere rivisto.
Non c'è bisogno di rompere nulla - basta aggiungere un metodo alla classe che dia un puntatore all'oggetto richiesto di un'altra classe.
Nei recenti articoli ho passato in questo modo i puntatori aglioggetti già creati e funzionantidella classe symbol collection e l'oggetto del conto corrente, che hanno già accumulato dati, in oggetti trade. E la classe commerciale li gestisce come se li avesse sempre avuti.