Problema dichiarazione array in C++

enigmagame
Ciao a tutti, cerco di spiegarvi il mio problema.
Ho un file .h in cui è definita la mia classe, sotto public ho il costruttore e sotto privare ho una struttura da me creata che chimeremo p.
Ho poi un file .cpp in cui vi è l'implementazione della classe, il costruttore non fa altro che inizializzare un array di una certa dimensione di p.
Supponiamo ora di avere un metodo che deve usare questo array, alla compilazione ricevo un errore, perchè ovviamente non lo trova, infatti dovrei dichiararlo nella struttura della classe, ma come faccio?
Scusate la domanda forse stupida ma sono un attimo confuso...
Grazie!

Risposte
Barnaba1
Invece di dichiararlo nel costruttore lo dichiari tra gli attributi della classe :P
ma non credo di aver afferrato il problema, magari prova a postare qualche parte di codice...

se ti riferisci al fatto che la dimensione dell'array viene passata al costruttore allora puoi dichiarare tra gli attributi della classe un puntatore alla struttura p (esempio p* vettp)
e nel costruttore fare vettp=new p[dimensione];
dove dimensione è il parametro passato al costruttore.

enigmagame
"Sergio":
Forse mi sfugge qualcosa, ma... perché non fai di p una classe a sé stante?

Certo si potrebbe fare anche cosi, però alla fine la mia classe deve gestire un insieme di elementi di tipo p, anche dichiararli come struttura non mi sembra sbagliato, tu che dici? Dici sia meglio creare un questi elementi come ulteriori oggetti?

enigmagame
"Barnaba":

se ti riferisci al fatto che la dimensione dell'array viene passata al costruttore allora puoi dichiarare tra gli attributi della classe un puntatore alla struttura p (esempio p* vettp)
e nel costruttore fare vettp=new p[dimensione];
dove dimensione è il parametro passato al costruttore.

Esatto il problema era questo, devo ancora provare, ma dovrebbe funzionare senza problemi.
Grazie.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.