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:
codice:
componenteSpazio Box::spazio[N]={0};
Un modo anche più pulito sarebbe dare alla struttura componenteSpazio un costruttore di default che la azzeri:
codice:
struct componenteSpazio
{                                
        int elemento;
        int successivo;
        int precedente;

        componenteSpazio()
        {
                elemento=successivo=precedente=0;
        }
};
Tra parentesi, levati l'abitudine dei typedef per le strutture, in C++ non serve.
Sembra interessante l'idea di dare alla struttura un costruttore di default.
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?