PDA

Visualizza la versione completa : Esercizio c++


gaibo
05-02-2015, 10:56
Buongiorno a tutti non riesco a risolvere questo esercizio:
"Definire una classe che gestisca un attributo (privato) intero utilizzando (1) un costruttore cheinizializza l’attributo con un dato acquisito da tatiera; (2) un metodo che produca 1 se l’attributo `e primo eproduca 0 altrimenti; (3) un distruttore che visualizzi il valore dell’attributo, se primo."
il mio codice è questo ma mi da un [linker error] undefined reference to 'Winmain@16' e Id returned 1 exit status.



class Matematica {
private :
int num;
int primo;
public:
Matematica(){
printf("inserire numero");
scanf("%d",&num);
}
int numPrimo(){
int i;
int cont=0;
primo=0;
for(i=1;i<=num;i++)
if(num%i==0)
cont++;
if(cont>2){
return 0;
}
else {
primo=1;
return 1;
}
}
~Matematica(){
this->primo=primo;
if(primo==1)
printf("%d",num);
}
};



penso che il problema sia nel distruttore in particolare quando utilizzo il "this" però non so come fare altrimenti a stampare SOLO se primo.. grazie mille a tutti!

oregon
05-02-2015, 11:00
Utilizza i tag CODE nel forum quando posti del codice ...

Il problema è legato al fatto che hai scelto un tipo di progetto sbagliato per compilare ... usa un progetto Console.

gaibo
05-02-2015, 11:09
non credo sia quello il problema, comunque ho aggiunto il main e adesso compila però esce solo inserisci un numero e quando lo inserisco finisce l'esecuzione..

oregon
05-02-2015, 11:11
Cosa hai scritto nel main?

gaibo
05-02-2015, 11:17
CODE
int main(){
Matematica mia;
mia.numPrimo();
system("pause");
}

oregon
05-02-2015, 11:24
Apri una finestra DOS ed esegui il programma nella finestra


P.S. Questa riga

this->primo=primo;

è inutile

gaibo
05-02-2015, 11:28
come si fa? ho aperto il prompt dei comandi e mi sono spostato nella cartella, come faccio ad eseguirlo?

oregon
05-02-2015, 11:30
Nomeprogramma.exe e invio ... come per qualsiasi programma ...

gaibo
05-02-2015, 11:39
Avevo sbagliato cartella ops.. comunque succede la stessa cosa che succede ad eseguirlo in Dev C++. Gli errori non ci sono più da quando ho aggiunto il main però non fa quello che deve..

oregon
05-02-2015, 11:46
Cioè ? Cosa succede? Io ho provato e funziona ...

Loading