Consideriamo le seguenti classiConstructor inizializzazione Vs assegnazione
class test1
{
private:
int a;
int b;
public:
test1():a(0),b(0){}
};
class test2
{
private:
int a;
int b;
public:
test2()
{
a=0;
b=0;
}
};
Ora, so che test1() constructor
è il modo giusto per inizializzare i dati membri di una class
, perché in test2()
stiamo eseguendo l'assegnazione e non inizializzazione. Le mie domande sono:
- Cosa potrebbe andare storto se eseguiamo l'assegnazione anziché l'inizializzazione?
- Il compilatore non esegue internamente il compito in caso di costruttore
test1()
? Se no, come sono inizializzati?
Vedere http://www.parashift.com/c++-faq/init-lists.html – hmjd
vedere questa risposta ... http://stackoverflow.com/questions/13894415/c-creating-objects-initialization- liste-vs-assegnazione – Caribou