PDA

Visualizza la versione completa : [C++] EreditarietÓ: PerchŔ non mi funziona???


tore88s
03-01-2009, 23:32
In questo programma mi dÓ diversi errori ma nn riesco a capire qual Ŕ il problema. Qualcuno pu˛ aiutarmi?

//PERSONA.H

#ifndef PERSONA_H_
#define PERSONA_H_
#include <cstdlib>
#include <iostream>
#include <string.h>


class Persona{
protected:
char* nome;
int eta;
int sesso;
public:
Persona(const char* NOME=" ",int SESSO=1, int ETA=0):

nome(new char[strlen(NOME)+1]),
sesso(SESSO),
eta(ETA){strcpy(nome,NOME);}
}

void chisei(){
cout<<"Sono una persona di nome "<<nome<<" sesso "<<sesso<<" ed ho "<<eta<<" anni ";
}

};

#endif


//STUDENTE.H

#ifndef STUDENTE_H_
#define STUDENTE_H_
#include "Persona.h"



class Studente:public Persona{
protected:
int esami;
int matricola;
char* facolta;
public:
Studente(const char* NOME=" ",char SESSO='M',int ETA=0,int ESAMI=0,long MATRICOLA=111111,char* FACOLTA=" ")
:Persona(NOME,SESSO,ETA),
esami(ESAMI),
matricola(MATRICOLA),
facolta(new char[strlen(FACOLTA)+1]){
strcpy(facolta,FACOLTA);}

void chisei(){
cout<<"\n Sono uno studente della facoltÓ di "<<facolta<<" Matricola "<<matricola<<" ed ho fatto "<<esami;}


};

#endif


//BORSISTA.H

#ifndef BORSISTA_H_
#define BORSISTA_H_


#include "Studente.h"

class Borsista:public Studente{

protected:
long borsa;
public:
Borsista(const char* NOME=" ",char SESSO='M',int ETA=0,int ESAMI=0,long MATRICOLA=111111,char* FACOLTA=" ",long BORSA=10000000):
Studente(NOME,SESSO,ETA,ESAMI,MATRICOLA,FACOLTA),

borsa(BORSA){
}

void chisei(){
cout<<"\n Inoltre ho ricevuto un borsa di studio pari a "<<borsa<<" di euro";}

};

#endif


//PERSONA.CPP

#include <cstdlib>
#include <iostream>
#include "Borsista.h"

using namespace std;

int main(int argc, char *argv[])
{
Persona Angelo("Angelo Pica",1,23);
Studente Marco("Marco Casa",1,21,6,534001,"Ingegneria");
Borsista Elena("Elena Dito",2,20,3,534242,"Medicina",150000);

Angelo.chisei();
Marco.chisei();
Elena.chisei();

system("PAUSE");
return EXIT_SUCCESS;
}

oregon
03-01-2009, 23:38
Diversi errori? Comincia ad elencare i primi ... indicaci in quale linea si verificano e dacci una tua idea della causa ... noi ti diamo la nostra ...

Cosi' si discute un problema ...

P.S. In ogni caso, qui

class Persona{
protected:
char* nome;
int eta;
int sesso;
public:
Persona(const char* NOME=" ",int SESSO=1, int ETA=0):

nome(new char[strlen(NOME)+1]),
sesso(SESSO),
eta(ETA){strcpy(nome,NOME);}
}

void chisei(){
cout<<"Sono una persona di nome "<<nome<<" sesso "<<sesso<<" ed ho "<<eta<<" anni ";
}

};

#endif

c'e' una parentesi di troppo e manca uno

using namespace std;

tore88s
06-01-2009, 13:07
Grazie funziona!!!

LeleFT
07-01-2009, 12:54
Come da regolamento:

1) Il linguaggio va indicato nel titolo
2) Il codice va postato all'interno degli appositi tag CODE


Ciao. :ciauz:

Loading