Sta scritta nella guida che t'ho linkato poco faOriginariamente inviato da TheDark191
Ora mi è chiara la teoria più o meno ma mi hai fatto sorgere un altro dubbio:
Qual è la differenza tra protetti e privati? privati significa che al di fuori dei metodi non posso utilizzare gli attributi?![]()
Secondo te c'è differenza tra fare così:Originariamente inviato da TheDark191
Però nel mio esempio io ho bisogno di richiamare l'attributo Vita al di fuori dei metodi,altrimenti come faccio a farla diminuire o aumentare tramite funzioni o metodi di altre classi?
oppure così:codice:class Personaggio { private: int vita; public: void setVita (int nuovaVita) { vita = nuovaVita; }; int getVita () { return vita; }; } int main () { Personaggio p; p.setVita(1); // vita = 1 p.setVita(p.getVita()++); // incremento vita }
Secondo me una differenza c'è: vedi, usare le classi è molto più che definire un "namespace" per delle variabili (sennò fai prima ad usare il C con le struct ecc...)codice:class Personaggio { public: int vita; } int main () { Personaggio p; p.vita = 1; p.vita = p.vita++; }
Se volessi controllare che una persona non inserisca una vita inferiore a 0 ?
Quel controllo è un tipo di comportamento dell'oggetto: se lavori ad oggetti non puoi fare quei tipi di controlli fuori dalla classe, altrimenti non ha senso l'uso della programmazione ad oggetti.
Ti ripeto, questa mentalità la acquisisci programmando e studiando la OOP.
Leggiti la guida che ti ho linkato su, oppure leggiti un bel libro sulla OOP come ce ne sono a centinaia, e cerca di acquisisre il giusto metodo di programmazione dall'inizio, perchè sennò gli sbagli te li porterai sempre
![]()

Rispondi quotando