Esercitazioni LPS

Da Bioingegneria Elettronica e Informatica.
Versione del 2 mag 2019 alle 14:52 di Profbevilacqua (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)


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 parti private e parti pubbliche
  27. // in generale tutti gli oggetti dichiarati all'interno di una classe sono privati
  28. class persona {
  29. private: //private è pleonastico (si può omettere)
  30. 	int IDP;
  31. 	// IDP in quanto privata non visibile da funzioni non metodo della classe persona
  32. public:
  33. 	void leggiIDP();
  34. 	void leggiIDP(int);
  35. 	void stampaIDP();
  36. 	persona();
  37. };
  38.  
  39. class studente : public persona {
  40. private:
  41. 	int IDS;
  42. public:
  43. 	void leggiIDS();
  44. 	void stampaIPDS();
  45. };
  46.  
  47. void persona::leggiIDP()
  48. {
  49. 	cin >> IDP;
  50. }
  51. void persona::leggiIDP(int A)
  52. {
  53. 	IDP = A;
  54. }
  55. void persona::stampaIDP()
  56. {
  57. 	cout << IDP << endl;
  58. 	// endl per andare a capo
  59. }
  60.  
  61. persona::persona()
  62. {
  63. 	IDP = 0;
  64. }
  65.  
  66. void studente::leggiIDS()
  67. {
  68. 	cin >> IDS;
  69. }
  70.  
  71. void studente::stampaIPDS()
  72. {
  73. 	cout << "Identificativo studente pari a " << IDS << endl;
  74. }
  75.  
  76. int main()
  77. {
  78. 	persona P, Q;
  79. 	studente S;
  80. 	// P.IDP=2; errore cannot access private member
  81. 	P.stampaIDP();
  82. 	P.leggiIDP();
  83. 	P.stampaIDP();
  84.  
  85. 	Q.leggiIDP(2);
  86. 	Q.stampaIDP();
  87.  
  88. 	S.leggiIDP();
  89. 	S.stampaIDP();
  90. 	S.leggiIDS();
  91. 	S.stampaIPDS();
  92.  
  93. 	// Decommentare su visual studio
  94. 	// system("pause");
  95. 	return 0;
  96. }