PDA

Visualizza la versione completa : [C++] Costruttori


SkOrPiOn`87
17-01-2004, 16:00
#include <iostream>

using namespace std;


class persona {
public:
persona();

private:
char nome[25];
char cognome[25];
char ruolo[13];
int anni;
};

persona::persona() {
cout << "Inserisci il nome del giocatore" << endl;
cin >> nome;
giocatore.nome = nome;
cout << "Inserisci il nome del cognome del giocatore" << endl;
cin >> cognome;
giocatore.cognome = cognome;
cout << "Inserisci il ruolo del giocatore" << endl;
cin >> ruolo;
giocatore.ruolo = ruolo;
cout << "Inserisci gli anni del giocatore" << endl;
cin >> anni;
giocatore.anni = anni;
}


int main () {

cout << ":::::.... Benvenuto ....:::::" << endl;
persona giocatore;

return 0;
}


Questo codice mi da i seguenti errori:

/Dev-Cpp/lavori/1/index.cpp C:\Dev-Cpp\lavori\1\C In constructor `persona::persona()':
21 C:\Dev-Cpp\lavori\1\index.cpp `giocatore' undeclared (first use this
21 C:\Dev-Cpp\lavori\1\index.cpp (Each undeclared identifier is reported only

Inoltre, se io volessi creare una nuova instazza per inserire un nuovo giocatore come dovrei fare? dovrei distruggere il costruttore di prima e ricreane un'altro con lo stesso nome?

iguana13
17-01-2004, 16:14
#include <iostream>

using namespace std;


class persona {
public:
persona();

private:
char nome[25];
char cognome[25];
char ruolo[13];
int anni;
};

persona::persona() {
cout << "Inserisci il nome del giocatore" << endl;
cin >> nome;
giocatore.nome = nome;
cout << "Inserisci il nome del cognome del giocatore" << endl;
cin >> cognome;
giocatore.cognome = cognome;
cout << "Inserisci il ruolo del giocatore" << endl;
cin >> ruolo;
// Cosa dovrebbe fare questa linea?
//giocatore.ruolo = ruolo;
cout << "Inserisci gli anni del giocatore" << endl;
cin >> anni;
// Idem come prima:
//giocatore.anni = anni;
}


int main () {

cout << ":::::.... Benvenuto ....:::::" << endl;
persona giocatore;

return 0;
}



Come vedi ti ho tolto due linee che non servivano!

Per creare altri giocatori puoi usare new() , ma devi memorizzare i puntatori magari in un vettore!

Level
17-01-2004, 19:11
/Dev-Cpp/lavori/1/index.cpp C:\Dev-Cpp\lavori\1\C In constructor `persona:ersona()':

La sintassi del costruttore č
persona :: persona() {....codice.....};



21 C:\Dev-Cpp\lavori\1\index.cpp `giocatore' undeclared (first use this


giocatore l'hai definito all'interno del main ().
Se lo vuoi utilizzare nel costruttore devi definirlo al suo interno. Cosė č ovvio che non te lo riconosca.

Loading