PDA

View Full Version : [C++] Costruttori ... strani!


ST6Man
22-08-2008, 10:33
Mi rivolgo sempre a voi guru, qualcuno è in grado di spiegarmi il significato dell'intestazione di questo costruttore?


Trace::Trace(int type) : Connector(), callback_(0), pt_(0), type_(type)


D'accordo riesco a capire che è il costruttore della classe trace, che prende in input il parametro type, è una classe derivata da Connector(), ma quello che mi lascia perplesso sono i parametri successivi.

Grazie in anticipo!

mpattera
22-08-2008, 10:45
Inizializzazioni di membri?

ST6Man
22-08-2008, 10:51
Inizializzazioni di membri?


In genere non si fa all'interno del corpo del costruttore?

Unrue
22-08-2008, 11:01
In genere non si fa all'interno del corpo del costruttore?

Puoi farlo anche direttamente, con la lista di inizializzazione usata nel tuo esempio.

marco.r
22-08-2008, 11:18
In genere non si fa all'interno del corpo del costruttore?

Non e' esattamente la stessa cosa.
In un caso l'oggetto viene inizializzato direttamente con i parametri specificati, nell'altro prima viene prima inizializzato con il costruttore senza argomenti, e poi viene fatto l'assegnamento sull'istanza risultante.
In generale non c'e' differenza, pero' se puo' essere piu' costoso se l'oggetto e' "grosso", sbagliato se l'inizializzazione comporta l'allocazione di risorse o effetti collaterali, o impossibile se gli oggetti in questione non hanno un costruttore senza argomenti.

ST6Man
22-08-2008, 11:22
Grazie a tutti! :) ora mi è più chiaro!