-
qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 14:54:00.0 alle 2011-10-03 14:54:00.0mi ritrovo con questa definizione di classe ma non riesco a comprendere alcune parti della sintassi

class Email { String _from, _to, _subject, _body; public: Email( const String& from, const String& to, const String& subject, const String& body ) : _from(from), _to(to), _subject(subject), _body(body) {} const String& getFrom() const { return _from; } const String& getTo() const { return _to; } const String& getSubject() const { return _subject; } const String& getBody() const { return _body; } };
non riesco a capire la sintassi _from(from) del costruttore, è per casdo analoga a scrivere
{ _from = from; }
e ancora nelle funzioni getter, perchè l'operatore indirizzo viene usato dopo la definizione del valore restituito?
ha qualcosa a che fare con la definizione di funzioni relativi alla TLS
aiutatemi vi prego
-
Re: qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 14:56:00.0 alle 2011-10-03 14:56:00.0
- Scritto da:
> mi ritrovo con questa definizione di classe ma
> non riesco a comprendere alcune parti della
> sintassi
Bocciato e rimandato a settembre!
-
Re: qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 15:11:00.0 alle 2011-10-03 15:11:00.0
- Scritto da:
> mi ritrovo con questa definizione di classe ma
> non riesco a comprendere alcune parti della
> sintassi
>
>
>class Email { > String _from, _to, _subject, _body; > > public: > > Email( > const String& from, > const String& to, > const String& subject, > const String& body > ) : _from(from), _to(to), _subject(subject), > _body(body) > {} > > const String& getFrom() const { return > _from; > } > const String& getTo() const { return _to; } > const String& getSubject() const { return > _subject; > } > const String& getBody() const { return > _body; > } > };
>
> non riesco a capire la sintassi _from(from) del
> costruttore, è per casdo analoga a scrivere
>
>
> { _from = from; }
>
> e ancora nelle funzioni getter, perchè
> l'operatore indirizzo viene usato dopo la
> definizione del valore
> restituito?
>
> ha qualcosa a che fare con la definizione di
> funzioni relativi alla TLS
>
>
> aiutatemi vi prego
Nel C++ le variabili private delle classi si mettono sempre con '_' davanti per indicare che sono appunto variabili, private e di una classe.
-
Re: qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 16:16:00.0 alle 2011-10-03 16:16:00.0
- Scritto da:
>
> - Scritto da:
> > mi ritrovo con questa definizione di classe ma
> > non riesco a comprendere alcune parti della
> > sintassi
> >
> >
> >class Email { > > String _from, _to, _subject, _body; > > > > public: > > > > Email( > > const String& from, > > const String& to, > > const String& subject, > > const String& body > > ) : _from(from), _to(to), _subject(subject), > > _body(body) > > {} > > > > const String& getFrom() const { return > > _from; > > } > > const String& getTo() const { return> _to; > } > > const String& getSubject() const { return > > _subject; > > } > > const String& getBody() const { return > > _body; > > } > > };
> >
> > non riesco a capire la sintassi _from(from) del
> > costruttore, è per casdo analoga a scrivere
> >
> >
> > { _from = from; }
> >
> > e ancora nelle funzioni getter, perchè
> > l'operatore indirizzo viene usato dopo la
> > definizione del valore
> > restituito?
> >
> > ha qualcosa a che fare con la definizione di
> > funzioni relativi alla TLS
> >
> >
> > aiutatemi vi prego
>
> Nel C++ le variabili private delle classi si
> mettono sempre con '_' davanti per indicare che
> sono appunto variabili, private e di una
> classe.
quella è una convenzione e non mi da nessun problema, non riuscivo a capire la sintassi _from(from) con le parentesi tonde e fuori dalle graffe, jambo mi ha spiegato che i tipi primitivi hanno un loro costruttore; a parte che String NON E' un tipo primitivo ma parte della TLS, adesso capisco che viene usato uno dei costruttori della libreria String, continuo a non capire perchè fuori stia fuori delle graffe
-
-
Re: qualcuno conosce il c++?- Scritto da:
> non riesco a capire la sintassi _from(from) del
> costruttore, è per casdo analoga a scrivere
>
>
> { _from = from; }
Si, i tipi primitivi hanno anche loro un constructor.
> e ancora nelle funzioni getter, perchè
> l'operatore indirizzo viene usato dopo la
> definizione del valore
> restituito?
Viene ritornato l'indirizzo di una String ?
Schemino che aiuta:
http://www.cplusplus.com/doc/tutorial/pointers/
Java non ha i pointers !
In Java una String e' immutabile !
-----------------------------------------------------------
Modificato dall' autore il 03 ottobre 2011 15.18
-----------------------------------------------------------`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 15:17:00.0 alle 2011-10-03 15:17:00.0
- Scritto da: Giambo
> Java non ha i pointers !
> In Java una String e' immutabile !
Con Oracle muterà!
-
Re: qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 16:23:00.0 alle 2011-10-03 16:23:00.0
- Scritto da: Giambo
> - Scritto da:
>
> > non riesco a capire la sintassi _from(from) del
> > costruttore, è per casdo analoga a scrivere
> >
> >
> > { _from = from; }
>
> Si, i tipi primitivi hanno anche loro un
> constructor.
String non è un tipo primitivo in C++, fa parte della TLS, al massimo sarà un costruttore della libreria di gestione delle stringhe, continuo ancora a non capire perchè stai fuori delle graffe
> > e ancora nelle funzioni getter, perchè
> > l'operatore indirizzo viene usato dopo la
> > definizione del valore
> > restituito?
>
> Viene ritornato l'indirizzo di una String ?
sì, ma allora perchè non è:
const &String getFrom() const { return _from; }
con l'operatore & davanti al tipo restituito invece che dietro
> Schemino che aiuta:
> http://www.cplusplus.com/doc/tutorial/pointers/
non serve a nulla
> Java non ha i pointers !
> In Java una String e' immutabile !
buon per voi, purtroppo il lignuaggio di programmazione che ho davanti è C++-
Re: qualcuno conosce il c++?
- Scritto da:
> > > non riesco a capire la sintassi _from(from)
> del
> > > costruttore, è per casdo analoga a scrivere
> > >
> > >
> > > { _from = from; }
> >
> > Si, i tipi primitivi hanno anche loro un
> > constructor.
>
>
>
> String non è un tipo primitivo in C++,
Hai ragione, mi sono consufo, non so perche' ma avevo letto "int"

> continuo
> ancora a non capire perchè stai fuori delle
> graffe
Se tu avessi scritto "_from(from)" nel body del costruttore, non sarebbe funzionato ("_from" e' null), mettendolo fuori probabilmente il compilatore lo trasforma in "_from = new(from)" o qualcosa del genere.
> > > e ancora nelle funzioni getter, perchè
> > > l'operatore indirizzo viene usato dopo la
> > > definizione del valore
> > > restituito?
> >
> > Viene ritornato l'indirizzo di una String ?
>
> sì, ma allora perchè non è:
>
> const &String getFrom() const { return
> _from;
> }
>
> con l'operatore & davanti al tipo restituito
> invece che dietro
>
E' la stessa cosa.
Credo.
La mia memoria vacilla
!
> > Java non ha i pointers !
> > In Java una String e' immutabile !
>
> buon per voi, purtroppo il lignuaggio di
> programmazione che ho davanti è
> C++
Poteva andarti peggio, poteva essere un VisualCoso o peggio un linguaggio funzionale
!
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 17:56:00.0 alle 2011-10-03 17:56:00.0
- Scritto da: Giambo
>
> - Scritto da:
>
> > > > non riesco a capire la sintassi _from(from)
> > del
> > > > costruttore, è per casdo analoga a scrivere
> > > >
> > > >
> > > > { _from = from; }
> > >
> > > Si, i tipi primitivi hanno anche loro un
> > > constructor.
> >
> >
> >
> > String non è un tipo primitivo in C++,
>
> Hai ragione, mi sono consufo, non so perche' ma
> avevo letto "int"
>
>
> > continuo
> > ancora a non capire perchè stai fuori delle
> > graffe
>
> Se tu avessi scritto "_from(from)" nel body del
> costruttore, non sarebbe funzionato ("_from" e'
> null), mettendolo fuori probabilmente il
> compilatore lo trasforma in "_from = new(from)" o
> qualcosa del
> genere.

-
Re: qualcuno conosce il c++?
- Scritto da:
> > Se tu avessi scritto "_from(from)" nel body del
> > costruttore, non sarebbe funzionato
> ("_from"
> e'
> > null), mettendolo fuori probabilmente il
> > compilatore lo trasforma in "_from = new(from)"
> o
> > qualcosa del
> > genere.
>
>


Porchiddio, vedi cosa succede a farmi scrivere in italiano mentre sono in conferenza telefonica in tedesco
?!?
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
-
Re: qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 18:56:00.0 alle 2011-10-03 18:56:00.0
- Scritto da: Giambo
>
> - Scritto da:
>
> > > > non riesco a capire la sintassi _from(from)
> > del
> > > > costruttore, è per casdo analoga a scrivere
> > > >
> > > >
> > > > { _from = from; }
> > >
> > > Si, i tipi primitivi hanno anche loro un
> > > constructor.
> >
> >
> >
> > String non è un tipo primitivo in C++,
>
> Hai ragione, mi sono consufo, non so perche' ma
> avevo letto "int"
>
>
> > continuo
> > ancora a non capire perchè stai fuori delle
> > graffe
>
> Se tu avessi scritto "_from(from)" nel body del
> costruttore, non sarebbe funzionato ("_from" e'
> null), mettendolo fuori probabilmente il
> compilatore lo trasforma in "_from = new(from)" o
> qualcosa del
> genere.
>
> > > > e ancora nelle funzioni getter, perchè
> > > > l'operatore indirizzo viene usato dopo la
> > > > definizione del valore
> > > > restituito?
> > >
> > > Viene ritornato l'indirizzo di una String ?
> >
> > sì, ma allora perchè non è:
> >
> > const &String getFrom() const { return
> > _from;
> > }
> >
> > con l'operatore & davanti al tipo restituito
> > invece che dietro
> >
>
> E' la stessa cosa.
>
> Credo.
>
> La mia memoria vacilla
!
ho notato
mi sa che devo aspettare la wakka
> > > Java non ha i pointers !
> > > In Java una String e' immutabile !
> >
> > buon per voi, purtroppo il lignuaggio di
> > programmazione che ho davanti è
> > C++
>
> Poteva andarti peggio, poteva essere un
> VisualCoso o peggio un linguaggio funzionale
> !
in realtà è il linguaggio di programmazione dell'Arduino, che a meno delle librerie ad hoc è C++
-
-
-
-
Re: qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 19:16:00.0 alle 2011-10-03 19:16:00.0
- Scritto da:
> mi ritrovo con questa definizione di classe ma
> non riesco a comprendere alcune parti della
> sintassi
>
>
>class Email { > String _from, _to, _subject, _body; > > public: > > Email( > const String& from, > const String& to, > const String& subject, > const String& body > ) : _from(from), _to(to), _subject(subject), > _body(body) > {} > > const String& getFrom() const { return > _from; > } > const String& getTo() const { return _to; } > const String& getSubject() const { return > _subject; > } > const String& getBody() const { return > _body; > } > };
>
> non riesco a capire la sintassi _from(from) del
> costruttore, è per casdo analoga a scrivere
: _from(from) richiama il costruttore di _from cioè String(const String &s), prima di entrare nel corpo del costruttore di Email.
>
>
> { _from = from; }
questo non richiama il costruttore di _from però, è un'assegnazione. Il risultato finale è uguale. Probabilmente i compilatori di oggi si accorgono della cosa e non chiamano inutilmente il default constructor.
>
> e ancora nelle funzioni getter, perchè
> l'operatore indirizzo viene usato dopo la
> definizione del valore
> restituito?
è il modo carino del C++ di ritornare un puntatore senza che l'utilizzatore se ne accorga
>
> ha qualcosa a che fare con la definizione di
> funzioni relativi alla TLS
>
>
> aiutatemi vi prego
-
Re: qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 19:22:00.0 alle 2011-10-03 19:22:00.0
- Scritto da:
>
> - Scritto da:
> > mi ritrovo con questa definizione di classe ma
> > non riesco a comprendere alcune parti della
> > sintassi
> >
> >
> >class Email { > > String _from, _to, _subject, _body; > > > > public: > > > > Email( > > const String& from, > > const String& to, > > const String& subject, > > const String& body > > ) : _from(from), _to(to), _subject(subject), > > _body(body) > > {} > > > > const String& getFrom() const { return > > _from; > > } > > const String& getTo() const { return> _to; > } > > const String& getSubject() const { return > > _subject; > > } > > const String& getBody() const { return > > _body; > > } > > };
> >
> > non riesco a capire la sintassi _from(from) del
> > costruttore, è per casdo analoga a scrivere
>
> : _from(from) richiama il costruttore di _from
> cioè String(const String &s), prima di entrare
> nel corpo del costruttore di
> Email.
>
>
> >
> >
> > { _from = from; }
>
> questo non richiama il costruttore di _from però,
> è un'assegnazione. Il risultato finale è uguale.
> Probabilmente i compilatori di oggi si accorgono
> della cosa e non chiamano inutilmente il default
> constructor.
risposta esauriente, grazie
> > e ancora nelle funzioni getter, perchè
> > l'operatore indirizzo viene usato dopo la
> > definizione del valore
> > restituito?
>
> è il modo carino del C++ di ritornare un
> puntatore senza che l'utilizzatore se ne
> accorga
questo lo devo approfondire, mi pareva di aver già letto qualcosa del genere ma non mi ricordo più bene
p.s. giambo è tutto fumo e niente arrosto-
Re: qualcuno conosce il c++?
- Scritto da:
> p.s. giambo è tutto fumo e niente arrosto
Mi hai smascherato
!!!
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: qualcuno conosce il c++?Scritto daNon Autenticatoil 2011-10-03 22:36:00.0 alle 2011-10-03 22:36:00.0
- Scritto da: Giambo
>
> - Scritto da:
>
> > p.s. giambo è tutto fumo e niente arrosto
>
> Mi hai smascherato
!!!
Uno che ha imparato il java con il libro gratuito Thinking in Java cosa vuoi che ne sappia del c++?
Ma poi non ti potevi comprare un libro? Pure gratis! Spilorcio
-
Re: qualcuno conosce il c++?
- Scritto da:
> > Mi hai smascherato
!!!
>
> Uno che ha imparato il java con il libro gratuito
> Thinking in Java cosa vuoi che ne sappia del
> c++?
Ho cercato le risposte con gugl, ma non ho capito nulla
!!!
> Ma poi non ti potevi comprare un libro? Pure
> gratis! Spilorcio
>
Sono disoccupato, l'UBS mi ha licenziato come giardiniere quando ha scoperto che annaffiavo le piante di plastica
!!
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
-
-
-
-