PDA

View Full Version : alludenme!! (aiutatemi)


Maurizioale
26-05-2004, 20:27
Linguaggio:c++
Ecco il mio problema:
Ho realizato una classe dove un metodo presenta dei parametri.
Il problema è che uno di questi parametri non mi deve passare un valore ad esempio un intero
ma deve passare il nome di una struttura(o record).
Ringrazio chi vorrà aiutarmi!

Mixmar
26-05-2004, 21:00
Scusa, ma non ho capito: tu hai un metodo tipo:


tipometodo nomemetodo(...) {

// Codice qui

}


Dove al posto dei puntini vanno i parametri...

Se vuoi passare un intero scrivi:

int nomevariabile

Se vuoi passare una struttura scrivi qualcosa tipo

struct nomestruttura nomevariabile

Mmmm... non mi ricordo più... se vuoi passare il puntatore, passi invece

struct nomestruttura* nomevariabile

Se invece vuoi passare il nome della struttura... che te ne fai? ;)
Passerai una stringa, o un array di char...

Spero di non aver detto cavolate... :confused:

Maurizioale
26-05-2004, 21:12
hai capito bene.Ho appena provato a fare struct nome struttura nome ma non va bene.Anche perchè la classe deve funzionare anche se la includo in un'altro prog quindi non posso mettere tra i parametri il nome della struttura presente nel programma,deve essere una cosa generica.
Uffa come posso fare..

Mixmar
26-05-2004, 21:15
E passare come parametro un'altra classe generica (o un puntatore ad essa), che contenga come proprietà la struct stessa?

Maurizioale
26-05-2004, 21:20
adesso ci provo

Maurizioale
26-05-2004, 22:43
ALLORA SONO RIUSCITO A RISOLVERE IL PROBLEMA DI PRIMA, ADESSO PERO' IL PROBLEMA E' UN'ALTRO E SINCERAMENTE CI STO PERDENDO UN SACCO DI TEMPO PERCIO' RINGRAZIO CHI VORRA' AIUTARMI IN QUESTA IMPRESA!


QUESTA E' LA CLASSE FILE.H :

#include<fstream.h>
#include<iostream.h>

class fil
{

public:

void scrivi(char nome_file[30],struct oggi *puntatore)
{
fstream logico;
logico.open(nome_file,ios::out|ios::binary);
logico.write((char *) & *puntatore,sizeof *puntatore);
logico.close();
}
void leggi(char nome_file[30],struct oggi *puntatore)
{
fstream logico;
logico.open(nome_file,ios::in|ios::binary);
logico.clear();
logico.read((char *) & *puntatore,sizeof *puntatore);
logico.close();
}

};

fil file;


QUESTO E' IL PROGRAMMINO:

#include<iostream.h>
#include<fstream.h>
#include<file.h>

struct oggi
{
char ci[10];
int goal;
int peso;
};




void main()
{
int ris;
struct oggi prova;
cout<<"leggere(1) o scrivere(0)? ";
cin>>ris;
if(ris==0)
{
cout<<"goal: ";
cin>>prova.goal;
file.scrivi("uffa.txt",&prova);
}
if(ris==1)
{
file.leggi("uffa.txt",&prova);
cout<<"goal: "<<prova.goal<<endl;;
}

}

IL PROGRAMMA MI DA I SEGUENTI ERRORI:

c:\programmi\microsoft visual studio\vc98\include\file.h(13) : error C2027: use of undefined type 'oggi'
c:\programmi\microsoft visual studio\vc98\include\file.h(9) : see declaration of 'oggi'
c:\programmi\microsoft visual studio\vc98\include\file.h(21) : error C2027: use of undefined type 'oggi'
c:\programmi\microsoft visual studio\vc98\include\file.h(9) : see declaration of 'oggi'
Error executing cl.exe.

NON RIESCO A CAPIRE QUALE SIA IL PROBLEMA!!
QUALCUNO MI AIUTI!!!

Grazie.