premetto di avere una classe figlio esame e una classe principale studente. mettiamo che il codice della classe esame l' ho gia scritto!
In mezzo a sto codice mi potete aiutare a capire dove sbaglio? Le parti dove sono indeciso sono in grassetto.
Credo di aver scritto il codice giusto, ma non capisco dove sta l'errore.Ho messo in grassetto le parti dove sono indeciso.codice://file .h class studente{ friend istream& operator >>(istream&, studente&); private: char* nome; char* cognome; int matricola; int num; esame* esami; public: studente(char* ,char* ,int ,int ,esame* ); studente(); ~studente(); char* nom(); char* cog(); int mat(); int _num(); esame* esa(); }; #endif //file.cpp #include "studente.h" #include <iostream.h> #include <string.h> istream& operator >>(istream& i, studente& s) { i >> s.nome; i >> s.cognome; i >> s.matricola; i >> s.num; s.esami=new esame[s.num]; for (int k=0; k<s.num; k++) i >> s.esame[k]; return i; }; studente::studente(char* n,char* c,int m,int nu,esame* e) { int l; l=strlen(n); nome=new char[l]; strcpy(nome,n); l=strlen(c); cognome=new char[l]; strcpy(cognome,c); matricola=m; num=nu; esame=new esami[i]; for (int i=0; i<num; i++) esami[i]=e[i]; }; studente::studente() { nome=new char[13]; strcpy(nome,"non definito"); cognome=new char[13]; strcpy(cognome,"non definito"); matricola=-1; num=0; esami=new esame[0]; }; studente::~studente() { delete [] nome; delete [] cognome; delete [] esami; }; char* studente::nom(){return nome;}; char* studente::cog(){return cognome;}; int studente::mat(){return matricola;}; int studente::_num(){return num;}; esame* studente::esa(){return esami;};
Mi potete aiutare?

)
Rispondi quotando


