Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Classe generica Matrici
Forum - C/C++ - Classe generica Matrici - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
simoo88 (Normal User)
Newbie


Messaggi: 12
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 13:58
Domenica, 31/01/2010
Sisi assolutamente questo diciamo è un costruttore secondario che ho creato e che concordo con te nel fare in questo modo.
Il mio dubbio era proprio per il costruttore di default .
Sai non sempre si conoscono subito le dimensioni della matrice che vogliamo creare e quindi inizializzarla in un secondo momento.
Secondo te è meglio mettere il costruttore di default privato così che non può essere richiamato oppure ... inizializzare una matrice a zero (è quello che mi è venuto in mente)????
grazie per le risposte ;)

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 14:22
Domenica, 31/01/2010
beh, se non si conoscono dall'inizio le dimensioni della matrice, vuol dire che ancora non serve allocare quella matrice. Puoi benissimo allocarla nel punto esatto in cui diventano note le dimensioni.
Ad ogni modo, fare una matrice modificabile (leggi: "Allarga e stringi a più non posso") in runtime è fattibile, ma comporta un'elevato grado di frammentazione della memoria. Magari potrebbe risultare accettabile, adesso che fai un progettino didattico, ma in futuro dovrai scontrarti con i programmi reali, che devono garantire il funzionamento continuo per un tempo indefinito, per cui frammentare la memoria diventerà una cosa da evitare come la peste!

PM Quote
Avatar
simoo88 (Normal User)
Newbie


Messaggi: 12
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 18:51
Domenica, 31/01/2010
Ok capisco.Su questo hai proprio ragione.
Hai anche ragione sul fatto di creare una matrice quando conosco le dimensioni,ma mettiamo caso che io volessi un array di matrici e conosco la dimensione solo di alcune?

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 19:11
Domenica, 31/01/2010
in quel caso potresti predisporre nell'interfaccia della matrice due metodi SetWidth(unsigned int w) e SetHeight(unsigned int h) che modificano a runtime le dimensioni della matrice. Stai attento però a riallocare correttamente la memoria qualora la matrice fosse stata già allocata, e considera inoltre tutte le problematiche relative alla politica di gestione dei dati della matrice (devo ritenerli ancora validi dopo un ridimensionamento? devo inizializzare la matrice tutte le volte che la ridimensiono?), ecc...

non è una cosa semplice e soprattutto, se davvero hai bisogno di questa funzionalità, potrebbe trattarsi di un software progettato veramente male!

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo