Newsgroup: it.comp.lang.c++
Titolo: Domanda semplice

Salve, sono sempre io, l'ignorante del news.
Volevo chiedere questo.
Supponiamo di avere creato una classe cosi fatta
class alunno{
              int  peso_alunno;
              int  età alunno;
              char iniziale_del_nome_alunno;
             public:
             alunno(void)     // costruttore di default
             alunno(int PESO,int ETA',char INIZIALE);     // mio costruttore
             /..../
             /*   altre funzioni membro, ma non è questa la cosa importante
che voglio chiedere*/
             char Fornisci_iniziale_del_nome_studente(void)
 return(iniziale_del_nome_alunno);};
             }; // chiusura della classe.
Ora nel main(), ad esempio, creo una struttura dinamica di questo tipo:
alunno  *student;
student= new Vettore_studenti[25];
 /* Anzitutto, se non stò facendo già delle cose errate, cosi facendo ho
chiamato 25 volte il costruttore di default, perchè ho creato un vettore di
25 oggetti, che, per esempio, rappresenta una "classe" scolastica (la III
B).*/
Domande:
1---- che cosa avrà assegnato il costruttore di default alle variabili
peso_alunno, età, iniziale_del_nome_alunno, se non stò assegnando niente di
preciso?
2---Se nel main(), inoltre,ho delle istruzioni tipo queste:
int peso_minimo=1000; // Kg... Parto cioè da un valore elevatissimo per
trovare l'alunno che ha il peso minimo fra tutti
int id_studente;
char Name;
for(i=0;i<25;i++)
{
if(peso_minimo>student[i].Peso_studente() )
  {
   peso_minimo=studenti[i].Peso_studente();
   Name=studenti[i].Fornisci_iniziale_del_nome_studente();
   id_studente=i;
   sesso= 'm'; // stà per maschile, 'f' per femminile;
 }
}
/..../
Lasciando perdere per il momento, perchè credo che non sia molto importante,
come faccio a vedere se un alunno dal peso minimo è maschio o femmina, ma
ammettiamo che riesca a farlo (IN REALTA' QUESTO E' UN ESEMPIO COSTRUITO
DA ME, per farvi vedere su quale principio funziona il simulatore che mi
hanno passato per la tesi e che io devo "upgradare".
E' un simulatore ad eventi, e devo stabilire qual'è l'oggetto che compie una
determinata "azione", tipo trasmettere, ricevere un messaggio vocale, ecc.
ecc....)
Più avanti ho una cosa di questo genere:
switch(sesso)
{
  case  'm':  student[id_studente].Azione1();
                   break;
  case  'f':  student[id_studente].Azione2();
                 break;
};
Supponiamo anche che nella classe student io abbia definito, fra i metodi,
le due funzioni membro
void  alunno::Azione1(void)
{
 /..../  //  Codice che dovrà significare l'azione 1...
if(peso_medio==peso_alunno){printf("L'alunno ha un peso pari a quello
medio\n");}
/* Cosi sto tentando di fare un confronto fra una variabile peso medio
interna al main (scope limitato solo al main), con una variabile interna
(private) della classe alunno*/
};
void  alunno::Azione2(void)
{
 /..../  //  Codice che dovrà significare l'azione 1...
if(peso_medio<=peso_alunno){printf("L'alunna ha un peso superiore a quello
medio\n");}
/* Cosi sto tentando di fare un confronto fra una variabile peso medio
interna al main (scope limitato solo al main), con una variabile interna
(private) della classe alunno*/
};
La domanda allora è la seguente:
(AMMESSO CHE ABBIATE AVUTO LA PAZIENZA E LA BONTA' DI LEGGERE TUTTO FIN
QUI...)
Il confronto fra int peso_medio, variabile confinata nel main() , e una
variabile interna ad un oggetto studente del Vettore_studenti, è sensato? La
variabile peso_alunno è o non è una variabile sporca al momento di fare il
confronto?
Soprattutto se la classe alunno è definita in un altro file, es. alunni.cpp,
funziona ?
Inoltre, facendo questo confronto cosa confronto peso_medio con il
peso_alunno dello studente i-esimo?
Grazie per la vostra collaborazione,
Sebastiano

 peso_alunno dello studente i-esimo?
Si, se peso_medio è il parametro passato al metodo.
EMG


