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
È sorta una domanda:
C'è una classe "Programma" che usa le classi"Nuova barra" e "Gestore dei dati". La classe "New Bar" utilizza a sua volta la classe "Data Manager". I getter e i setter pubblici sono implementati nella classe "Data Manager".
Domanda: quali sono le opzioni per l'inizializzazione del programma per la classe "New Bar" per specificare le proprietà "symbol" e "timeframe" della classe "Data Manager"? Non vorrei avere getter e setter pubblici nella classe New Bar per accedere ai campi del gestore dei dati. E vorremmo mantenere privato il gestore dei dati.
In altre parole: l'applicazione può utilizzare più classi che usano il gestore dei dati. Durante l'inizializzazione del programma, tutti i campi manager di tutte le classi devono essere inizializzati con i valori richiesti. Ma non voglio creare getter in tutte le classi per accedere ai campi del gestore dei dati. Quindi...
Secondo la vostra descrizione ha senso separare queste impostazioni in un'entità separata, la stessa per tutti i manager e non solo
Sì, sembra che tu abbia bisogno di ereditare le classi che hanno bisogno di un gestore da una classe base che ha getter per i campi del gestore. Grazie.
È sorta una domanda:
C'è una classe "Programma" che usa le classi"Nuova barra" e "Gestore dei dati". La classe "New Bar" utilizza a sua volta la classe "Data Manager". La classe "Data Manager" implementa getter e setter pubblici.
Domanda: quali sono le opzioni per l'inizializzazione del programma per la classe "New Bar" per specificare le proprietà "symbol" e "timeframe" della classe "Data Manager"? Non vorrei avere getter e setter pubblici nella classe New Bar per accedere ai campi del gestore dei dati. E vorremmo mantenere privato il gestore dei dati.
In altre parole: l'applicazione può utilizzare più classi che usano il gestore dei dati. Durante l'inizializzazione del programma, tutti i campi manager di tutte le classi devono essere inizializzati con i valori richiesti. Ma non voglio creare getter in tutte le classi per accedere ai campi del gestore dei dati. Quindi...
È più o meno così che faccio io.
Più o meno è così che faccio io.
Grazie per l'esempio, è un po' complicato finora, ma in generale l'idea è chiara. Immediatamente sorge una domanda: ok, se "un livello di annidamento" - qui è chiaro, ma se ci saranno diversi livelli di annidamento?
Aggiunto:
Non è anche chiaro perché il campo cIsDelData? Dopo tutto, potete semplicemente controllare m_data contro POINTER_DINAMIC nel distruttore. O mi sbaglio?
Se fate l'ereditarietà, avrete un sacco di metodi inutili. E l'oggetto deve essere privato. Quindi, non ci crederete, ma il modo più semplice è quello di impostare i setter per tutte le classi che usano il gestore dei dati.
Se tutti i gestori di dati lavorano con gli stessi parametri, è meglio non creare oggetti, ma passare un puntatore a un gestore di dati. In questo caso, è necessario solo un setter per passare il puntatore.
Grazie per l'esempio, è un po' complicato finora, ma in generale l'idea è chiara. Immediatamente sorge una domanda: ok, se "un livello di annidamento" - qui è chiaro, ma se ci saranno diversi livelli di annidamento?
Aggiunto:
Non è anche chiaro perché il campo cIsDelData? Dopo tutto, potete semplicemente controllare m_data contro POINTER_DINAMIC nel distruttore. O mi sbaglio?
Grazie, ci penserò.
Lo faccio più o meno così.
cosa significa questa lineaCDataManager* m_data;
Ragazzi, voglio fare una cosa del genere. Ho una macro.
Come risultato avrò 2 macrofoor efoor1.
cosa significa questa lineaCDataManager* m_data;
Ragazzi, voglio fare una cosa del genere. Ho una macro.
Come risultato avrò 2 macrofoor efoor1.
Un puntatore a un oggetto.
Senza offesa, ma è troppo presto per te per occuparti di tali macro. Prima di tutto, capite perché l'ho fatto: