PDA

View Full Version : (C/C++) Qualche dubbio su classi e file


Gino+89+
22-09-2007, 17:56
Ciao a tutti.
Sto ripassando il c++ e mi stanno venendo parecchi dubbi (atroci):

1) Quando scrivo una struttura dati (tipo classe o struct) su file, posso inserire stringhe ma non liste o alberi? Nel senso, non posso scrivere strutture dati che si basano su dei puntatori?
Se per esempio ho:

class dati{
public:
int a;
int *b;
list<int> lista_con_Stl;
char parola[6];
struct elem_lista* start;
char *parola2;
};

quali elementi di questa classe mi danno problemi nel momento in cui voglio scriverla su un file bainaro .dat? Per calcolare il sizeof della classe mi tocca scorrere tutte le liste?

2)Se scrivo:


class ciao{
private:
int num;
public:
ciao(int num):num(num){}
int getValue(){ return n; }
};

//.....
int quattro=4;
ciao valore(quattro);

int var=valore.getValue();

ciao::getValue();


Cosa cambia tra scrivere uno.getValue() e ciao::getValue()?
In generale :: preceduti dal nome classe servono per usare delle sue funzioni o variabili separatamente dalle sue istanze?

Insomma sono due cavolate ma devo risolvere il più presto pissibile, Grazie per eventuali risposte.

cionci
22-09-2007, 18:25
1) non puoi inserire strutture dati la cui dimensione in memoria sia determinata tramite allocazione dinamica di memoria. Quindi puoi inserire una stringa char a[100], ma non una stringa char *a allocata dinamicamente. Anche list fa uso di allocazione dinamica.

2) ciao::getValue(); funziona ? Sinceramente non ho mai provato. Comunque il risolutore di visibilità :: ha diversi usi, uno di questi è accedere ai metodi e ai membri statici delle classi. Quindi non credo che funzioni.

Gino+89+
22-09-2007, 19:33
Ok grazie mille!