|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3191
|
[C++]Membri Costanti e composizione
Ciao a tutti, sono arrivato a studiare i membri e le funzioni costanti di una classe, ma non riesco a capire il vantaggio di metterli costanti!!
Per esempio perchè una funzione print il libro la mette costante. Quindi quando devo usare la parola const?? Per secondo non riesco a capire la composizione,per nulla ![]() ![]() Qualcuno che mi spiega cortesemente magari con un esempio? ![]() ![]() Ciao e grazie in anticipo |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dichiarare un metodo const significa che non andrà a modificare i dati della classe...
Se ho la classe X che un metodo const print e dichiaro: const X pippo(...parametri se servono...); Con un oggetto const si possono richiamare solamente metodi const... pippo.print(); |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3191
|
vantaggi ?
![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3191
|
ok, e quando secondo te mi conviene definire una funzione const ??
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sempre nel caso in cui non modifichi i dati interni della classe...
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3191
|
ok, grazie, dovrò fare un po di pratica, tu come programmatore lo usi spesso??
Invece per quanto riguarda la composizione? |
![]() |
![]() |
![]() |
#8 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Comunque serve per dare alla tua classe una usabilità completa in ogni contesto... Quote:
![]() |
||
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3191
|
la composizione
![]() Il libro la chiama così: "Il concetto di composizione: Oggetti che diventano membri di altre classi" |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Li tratti come li tratteresti in una funzione normale...che c'è di strano... Al limite cambia solo l'inizializzazione....
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3191
|
guarda questo pezzo di codice:
Codice:
class date { public: Date(int=1, int=1,int=1990); void print() const; ~Date(); private: int month; int day; int year; int checkday(int); }; class Employee { public: Employee(char *,char *,int,int,int,int,int,int); void print(); ~Employee(); private: char firstName[25]; char lastname[25]; const Date birthDate; //Che significa??? const Date hireDate; //Che Significa??? }; Perchè mette Date ??? |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
class date
In cima deve essere Date e non date... Perchè vuole utilizzare 2 date ed avendo definito la classe Date si lmiita a dichiare due istanze della classe Date... |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3191
|
dichiara 2 oggetti della classe Date come membri della classe Employee???
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Certo...
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3191
|
bhe ma allora e una cosa inutile, potevo benissimo gestirli in modo indipendente!
Giusto?? |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Che intendi ? Perchè inutile ? Come avresti voluto gestirlo ?
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3191
|
secondo me è inutile perchè potevo gestire le 2 classi in modo indipendente...
Magari mi sbaglio ![]() |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Lo sai perchè si fanno le classi ? Uno degli scopi principali è per poter riutilizzare gli stessi oggetti in diverse circostanze...
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3191
|
ok, grazie
Cmq io e la prima volta che programmo con le classi, non mi è così facile ![]() Byezz ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:53.