Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Classe Counter
Forum - C/C++ - Classe Counter

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Djot (Normal User)
Rookie


Messaggi: 23
Iscritto: 14/02/2017

Segnala al moderatore
Postato alle 19:17
Domenica, 14/05/2017
Salve a tutti , stavo svolgendo un esercizio sulle classi , il comando era il seguente :

"Definire una classe counter che contiene un intero. La classe ha un costruttore
che inizializza il counter a 0 e i seguenti metodi:
(a) un metodo void inc() che incrementa di 1 il contatore;
(b) un metodo int read() che restituisce il valore del contatore;
Scrivere una funzione esterna alla classe che dato un contatore di valore n ne restituisce
un altro con valore n-1 se n>0, oppure con valore 0 se n=0."

Ora , dopo aver definito la classe Counter non so come definire la funzione esterna , potete darmi una mano? Allego qui sotto il codice della relativa classe , grazie mille.

Codice sorgente - presumibilmente C++

  1. class Counter{
  2. int val;
  3. public:
  4.     Counter(){
  5.     val = 0;
  6.     }
  7.     void Inc(){
  8.     val++;
  9.     }
  10.     int Read(){
  11.     return val;
  12.     }
  13. };



-Djot
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5461
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:54
Domenica, 14/05/2017
Perché non ci provi e ci dai un tuo esempio di codice?

Hai scritto la classe e non tenti neppure di scrivere la funzione?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 345
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 22:22
Domenica, 14/05/2017
Cosa si intende per "funzione esterna"? E' un'espressione che non ho mai incontrato in precedenza.


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5461
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:23
Domenica, 14/05/2017
Intende dire che non sia un metodo della classe


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 345
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 22:28
Domenica, 14/05/2017
Allora è una funzione comunissima, no? Diciamo una funzione "normale"?
Dove starebbe quindi la difficoltà? Non capisco.


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5461
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:37
Domenica, 14/05/2017
Mah ... forse il fatto che deve interagire con la classe ...

Magari si spiegherà meglio ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 345
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 22:41
Domenica, 14/05/2017
Tutt'al più varrebbe la pena rilevare che la consegna è ambigua:

Scrivere una funzione esterna alla classe che dato un contatore di valore n ne restituisce un altro con valore n-1 se n>0, oppure con valore 0 se n=0.

Parrebbe di potersela cavare con questo...

Codice sorgente - presumibilmente C/C++

  1. int decrementa_contatore( int contatore ) {
  2.     return contatore>0 ? contatore-1 : 0;
  3. }



...però il testo della consegna non chiarisce come deve comportarsi la funzione se n<0, quindi decrementa_contatore(), così com'è, potrebbe non andar bene.


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5461
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:57
Domenica, 14/05/2017
Ma no ... non hai usato affatto la classe ...

Quando parla di "contatore" intende una istanza di classe Counter

Altrimenti perché avrebbe scritto quel codice?

Ultima modifica effettuata da nessuno il 14/05/2017 alle 23:01


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 345
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 23:02
Domenica, 14/05/2017
Dunque, un'altra inaccuratezza da parte di chi ha scritto la consegna! Italiano, questo sconosciuto.

Non essendoci un metodo dec(), direi che l'unico modo in cui una funzione "esterna" alla classe potrebbe modificarne una proprietà privata sia farne una funzione "friend"...

Ultima modifica effettuata da AldoBaldo il 14/05/2017 alle 23:13


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo