Sembra interessante l'idea di dare alla struttura un costruttore di default.Originariamente inviato da MItaly
No, potresti dichiarare una classe che incapsula l'array in questione ed è dotata di un costruttore.
Questo nel caso generale; dato che nel tuo caso l'inizializzazione non dipende dal particolare elemento, ma è la stessa per ogni elemento, ti basta fare:
Un modo anche più pulito sarebbe dare alla struttura componenteSpazio un costruttore di default che la azzeri:codice:componenteSpazio Box::spazio[N]={0};
Tra parentesi, levati l'abitudine dei typedef per le strutture, in C++ non serve.codice:struct componenteSpazio { int elemento; int successivo; int precedente; componenteSpazio() { elemento=successivo=precedente=0; } };
Ma nella tua sintassi questa inizializzazione viene fatta automaticamente? Ovvero la funzione componenteSpazio() della struttura viene lanciata in automatico o devo essere io, da qualche parte nel mio codice (nel caso dove?) a lanciarla?
Perchè la typedef in c++ non serve? posso dare direttamente il nome della struttura senza dover ripetere ogni volta "struct" ?
Inoltre il dato di tipo strutturato se lo creo all'interno della classe, o all'esterno, cambia qualcosa in termini di pulizia del codice? o posso metterlo dove mi è più simpatico?