Esercitazioni LPS: differenze tra le versioni

Da Bioingegneria Elettronica e Informatica.
(Creata pagina con "__FORCETOC__ == Esercitazione del 2 maggio 2019 == <syntaxhighlight lang="cpp" line> // questo è un commento a linea singola in puro stile C++ // la programamzione ad ogge...")
 
(Esercitazione del 2 maggio 2019)
Riga 28: Riga 28:
  
 
// Creazione della classe persona
 
// Creazione della classe persona
// una classe può contenere parti private e parti pubbliche
+
// una classe può contenere attributi (variabili) e metodi (funzioni) privati, protetti e pubblici
// in generale tutti gli oggetti dichiarati all'interno di una classe sono privati
+
// per ora prevediamo soltanto attributi privati e metodi pubblici
 
class persona {
 
class persona {
 
private: //private è pleonastico (si può omettere)
 
private: //private è pleonastico (si può omettere)
 
int IDP;
 
int IDP;
// IDP in quanto privata non visibile da funzioni non metodo della classe persona
+
// IDP in quanto variabile privata non risulta visibile da funzioni che non siano metodi della classe persona
 
public:
 
public:
 
void leggiIDP();
 
void leggiIDP();
 
void leggiIDP(int);
 
void leggiIDP(int);
 
void stampaIDP();
 
void stampaIDP();
 +
// segue la funzione costruttore, omonima della classe, e nella cui dichiarazione non si specifica il valore restituito
 
persona();
 
persona();
 
};
 
};

Versione delle 17:09, 2 mag 2019


Esercitazione del 2 maggio 2019

  1. // questo è un commento a linea singola in puro stile C++
  2.  
  3.  
  4. // la programamzione ad oggetti supporta //
  5. // l'incapsulamento
  6. // il polimorfismo
  7. // l'ereditarietà 
  8.  
  9. // esempio di incapsulamento: dati e funzioni in un oggetto
  10. // esempio di polimorfismo a compile time: overloading di funzioni
  11. // esempio di ereditarietà: classe persona e classe studente
  12. // esempio di costruttore per inizializzare variabili a valori di default
  13.  
  14.  
  15. // un oggetto è una istanza di una classe
  16.  
  17. // include la necessaria intestazione <iostream>
  18. #include <iostream>
  19.  
  20. // l'istruzione using informa il compilatore che intende utilizzare il namespace standard
  21. using namespace std;
  22. // i namespace creano delle regioni di dichiarazione
  23. // nel namespace standard viene dichiarata l'intera libreria standard del C++
  24.  
  25. // Creazione della classe persona
  26. // una classe può contenere attributi (variabili) e metodi (funzioni) privati, protetti e pubblici
  27. // per ora prevediamo soltanto attributi privati e metodi pubblici
  28. class persona {
  29. private: //private è pleonastico (si può omettere)
  30. 	int IDP;
  31. 	// IDP in quanto variabile privata non risulta visibile da funzioni che non siano metodi della classe persona
  32. public:
  33. 	void leggiIDP();
  34. 	void leggiIDP(int);
  35. 	void stampaIDP();
  36. // segue la funzione costruttore, omonima della classe, e nella cui dichiarazione non si specifica il valore restituito
  37. 	persona();
  38. };
  39.  
  40. class studente : public persona {
  41. private:
  42. 	int IDS;
  43. public:
  44. 	void leggiIDS();
  45. 	void stampaIPDS();
  46. };
  47.  
  48. void persona::leggiIDP()
  49. {
  50. 	cin >> IDP;
  51. }
  52. void persona::leggiIDP(int A)
  53. {
  54. 	IDP = A;
  55. }
  56. void persona::stampaIDP()
  57. {
  58. 	cout << IDP << endl;
  59. 	// endl per andare a capo
  60. }
  61.  
  62. persona::persona()
  63. {
  64. 	IDP = 0;
  65. }
  66.  
  67. void studente::leggiIDS()
  68. {
  69. 	cin >> IDS;
  70. }
  71.  
  72. void studente::stampaIPDS()
  73. {
  74. 	cout << "Identificativo studente pari a " << IDS << endl;
  75. }
  76.  
  77. int main()
  78. {
  79. 	persona P, Q;
  80. 	studente S;
  81. 	// P.IDP=2; errore cannot access private member
  82. 	P.stampaIDP();
  83. 	P.leggiIDP();
  84. 	P.stampaIDP();
  85.  
  86. 	Q.leggiIDP(2);
  87. 	Q.stampaIDP();
  88.  
  89. 	S.leggiIDP();
  90. 	S.stampaIDP();
  91. 	S.leggiIDS();
  92. 	S.stampaIPDS();
  93.  
  94. 	// Decommentare su visual studio
  95. 	// system("pause");
  96. 	return 0;
  97. }