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
è anche sotto la custodia dei moderatori
Chiunque abbia parlato di custodia... ma un personaggio con due eccentricità...
anche sotto la tutela dei moderatori
Sembra che io abbia cancellato il mio stesso post.
Questo era il caso quando un oggetto viene creato in una funzione tramite new. Originariamente, abbiamo parlato di passare un puntatore a un oggetto esistente. E qui si può passare così:
void f(CObj * obj){}
E se un puntatore deve essere passato a una funzione per creare un oggetto nella funzione, è così che funziona:
Questo è tutto quello che volevate sapere sull'OOP, ma avevate paura di chiedere)))Questo codice mi fa uscire il terminale. Nel migliore dei casi, causa un errore critico nel debug (per l'animazione clicca sull'immagine):
Strano che un tale costrutto venga saltato dal compilatore.
Dmitry ha dato il primo esempio con un errore, e cosa c'è di male?
Dim, sì, compila senza errori, ma quando si esegue lo script, si verifica un errore.
Vladimir l'ha corretto e ha aggiunto un puntatore, il codice ha funzionato correttamente.
Di cos'altro abbiamo bisogno? Ora dobbiamo scoprire chi è il più figo? ))))
Ragazzi, siate rispettosi l'uno dell'altro, e non fate ricorso a personalità e insulti con arroganza.
Esempio iniziale di Dimitri
Correzione di Vladimir.
La mia correzione con una stampa del risultato del metodo, per verificare
Questo esempio ora funziona, di cos'altro avete bisogno?
Smettete di cercare di capire chi è più figo o meno, tutti hanno errori e refusi.
Nel corso di queste discussioni, credo che abbiamo identificato un errore del compilatore.
Perché il compilatore salta la compilazione dell'esempio iniziale di Dmitri senza errori?
Questo codice mi fa uscire il terminale. Nel migliore dei casi, causa un errore critico di debug:
È strano che un tale costrutto venga passato dal compilatore.
Qui tutto è valido per il compilatore.
Viene creato un puntatore a un oggetto nel segmento dati del programma e viene inizializzato 0x0 durante la compilazione.
I comandi necessari al processore sono creati nel segmento di codice.
In fase di esecuzione, i comandi sono sollevati sullo stack all'indirizzo della funzione z(...).
E lì spostare rdx [0x0]
E l'accesso a un indirizzo di memoria nullo è vietato. La dereferenziazione di un puntatore nullo è chiamata
Qui tutto è valido per il compilatore.
Per quale compilatore?
Questo codice mi fa uscire il terminale. Nel migliore dei casi, provoca un errore critico nel debug (per l'animazione clicca sull'immagine):
Strano che un tale costrutto venga saltato dal compilatore.
Il mio compila, funziona correttamente, ma mostra un messaggio di perdita di memoria (la cancellazione non funziona) al completamento.
Gli insegnerai le cose cattive ora, sono le cose buone che devono essere affrontate )))
Non ti sei seduto con i codici fxsaber per niente. Mi sembra un capolavoro.
Mi scuso per la disinformazione, ho scritto prima che non si può chiamare il metodo Create() in una classe figlia.
Ora, ricontrollato, è possibile. Ma l'accesso al membro privato m_button non era disponibile. Cioè era impossibile controllare, per esempio, lo stato del pulsante: premuto/rilasciato.
Ora con il suggerimento di Igor è possibile.