Dichiarazione variabili di tipi composti

Messaggioda ZfreS » 13/07/2018, 10:38

Ho creato una classe di nome Dado, dunque posso creare variabili di tipo Dado, giusto?
Che differenza c'è tra lo scrivere Dado d1; e Dado d1(6); ? La prima è una dichiarazione di variabile ma la seconda dovrebbe essere un costruttore. La prima si può utilizzare o no. Alla prima dichiarazione posso assegnare un valore o no? Sono un pò confuso in merito a questo argomento.
[URL=https://datesnow.life]Authentic Ladies[/URL]
ZfreS
Cannot live without
Cannot live without
 
Messaggio: 670 di 4590
Iscritto il: 22/10/2016, 17:52
Località: Usa

Re: Dichiarazione variabili di tipi composti

Messaggioda niccoset » 13/07/2018, 13:51

olegfresi ha scritto:Ho creato una classe di nome Dado, dunque posso creare variabili di tipo Dado, giusto?

Si

olegfresi ha scritto: Che differenza c'è tra lo scrivere Dado d1; e Dado d1(6); ? La prima è una dichiarazione di variabile ma la seconda dovrebbe essere un costruttore. La prima si può utilizzare o no. Alla prima dichiarazione posso assegnare un valore o no? Sono un pò confuso in merito a questo argomento.

Suppongo che tu stia lavorando in c++. Con l'istruzione
Codice:
Dado d1;
crei (sarebbe meglio dire istanzi) un oggetto d1 di tipo Dado utilizzando il costruttore di default che può essere quello da te definito o quello generato di default dal tuo compilatore. Con
Codice:
Dado d1(6);
crei l'oggetto d1 usando un costruttore da te definito in cui ad esempio vai a settare un attributo della classe Dado (ad esempio
Codice:
private int numeroDiFacce;
.

olegfresi ha scritto: Alla prima dichiarazione posso assegnare un valore o no? Sono un pò confuso in merito a questo argomento.
Diversamente dall'usuale dichiarazione di variabili per settare gli attributi di una classe di usano i costruttori.
" Tutto dovrebbe essere reso più semplice possibile, ma non più semplice ancora. " - Albert Einstein
niccoset
Average Member
Average Member
 
Messaggio: 262 di 584
Iscritto il: 13/06/2013, 07:17

Re: Dichiarazione variabili di tipi composti

Messaggioda ZfreS » 13/07/2018, 14:39

Perfetto, grazie mille, hai chiarito tutti i miei dubbi a riguardo!
[URL=https://datesnow.life]Authentic Ladies[/URL]
ZfreS
Cannot live without
Cannot live without
 
Messaggio: 671 di 4590
Iscritto il: 22/10/2016, 17:52
Località: Usa

Re: Dichiarazione variabili di tipi composti

Messaggioda ZfreS » 13/07/2018, 16:02

Scusa, mi è sorto un dubbio: se io dichiaro una variabile Dado d1; io sto chiamando un costruttore vuoto come se scrivessi Dado d1(), giusto? Se questo è vero io dichiaro una variabile Dado d1 e posso eseguire il comando d1.funzione, se invece dachiaro una variabile così: Dado d1() non posso più scrivere d1.funzione, però in entrambi i casi io sto chiamando un costruttore di defaulte. Come mai non è possibile invocare un metodo sulla variabile nel secondo caso?
[URL=https://datesnow.life]Authentic Ladies[/URL]
ZfreS
Cannot live without
Cannot live without
 
Messaggio: 673 di 4590
Iscritto il: 22/10/2016, 17:52
Località: Usa

Re: Dichiarazione variabili di tipi composti

Messaggioda niccoset » 13/07/2018, 17:12

Perchè il costruttore di default si scrive senza parentesi (cioè Dado d1; ). Nel secondo caso credo che lui interpreti l'istruzione Dado d1() come la dichiarazione di una funzione ( di nome d1 e che ritorna un tipo Dado) e per questo il compilatore ti dà un errore quando provi a fare d1.funzione().
" Tutto dovrebbe essere reso più semplice possibile, ma non più semplice ancora. " - Albert Einstein
niccoset
Average Member
Average Member
 
Messaggio: 264 di 584
Iscritto il: 13/06/2013, 07:17

Re: Dichiarazione variabili di tipi composti

Messaggioda ZfreS » 13/07/2018, 17:29

Ah, già, non ci ho proprio pensato, grazie mille ancora.
[URL=https://datesnow.life]Authentic Ladies[/URL]
ZfreS
Cannot live without
Cannot live without
 
Messaggio: 674 di 4590
Iscritto il: 22/10/2016, 17:52
Località: Usa


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite