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++ - Esercizio sulla sottoclassi
Forum - C/C++ - Esercizio sulla sottoclassi

Avatar
Djot (Normal User)
Rookie


Messaggi: 23
Iscritto: 14/02/2017

Segnala al moderatore
Postato alle 16:50
Venerdì, 12/05/2017
Salve a tutti , stavo svolgendo un esercizio sulle sottoclassi , l'esercizio consisteva nel generare una classe Conto in Banca , con opportuno costruttore e metodi , e di generare poi una sottoclasse Interessi che sommava al denaro un interesse del 2% ;
Tuttavia ci sono vari errori nella sottoclasse che non riesco a comprendere , allego qui sotto il mio codice , grazie per la pazienza :
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class contoBanca{
  5. double denaro;
  6. public:
  7.     contoBanca(){
  8.     denaro = 0;
  9.     }
  10.     void Saldo(){
  11.     cout << denaro << endl;
  12.     }
  13.     void Ritira(int n){
  14.         if(denaro != 0){
  15.         if(n!=0 && n%10 == 0){
  16.             denaro = denaro - n;
  17.         }else{
  18.             cout << "L'importo desiderato non puo' essere ritirato" << endl;
  19.         }
  20.         }
  21.         else{
  22.             cout << "Denaro insufficiente per poter ritirare" << endl;
  23.         }
  24.     }
  25.     void Versa(int m){
  26.     if(m!=0){
  27.     denaro = denaro + m;
  28.     }else{
  29.     cout << "Non e' possibile versare una quantita' nulla" << endl;
  30.      }
  31.     }
  32. };
  33. class Interessi:public contoBanca{
  34.     double interessi;
  35. public:
  36.     Interessi():contoBanca();
  37.     double Inter(){
  38.         interessi = (denaro*2)/100 + denaro; // "double contoBanca::denaro is private"
  39.         return interessi;
  40.     }
  41. };
  42. int main(){
  43. contoBanca b1;
  44. b1.Saldo();
  45. b1.Versa(20);
  46. b1.Saldo();
  47. b1.Ritira(10);
  48. b1.Saldo();
  49. return 0;
  50. }



-Djot
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 17:02
Venerdì, 12/05/2017
L'errore dovrebbe dirti tutto: denaro è una variabile privata della classe contoBanca e quindi nessuna altra classe può accedervi.
Di solito si userebbe una coppia di metodi setter/getter, in questo caso visto che è un esercizio ti consiglio di dichiarare denaro come protected.

EDIT: visto che non modifichi denaro, in realtà lasciala private e cambia Saldo() in modo che ritorni denaro (così diventa un getter) e invece di usare denaro direttamente userai il valore dato da Saldo nella sottoclasse.

Ultima modifica effettuata da lumo il 12/05/2017 alle 17:03
PM Quote
Avatar
Djot (Normal User)
Rookie


Messaggi: 23
Iscritto: 14/02/2017

Segnala al moderatore
Postato alle 17:08
Venerdì, 12/05/2017
Perfetto! Grazie mille!


-Djot
PM Quote