Ho appena saputo ieri che specificare parametri per gli elementi di elenco di inizializzazione è facoltativo. Tuttavia, quali sono le regole per ciò che accade in questo caso?Valori predefiniti in elenchi di inizializzatori C++
Nell'esempio seguente, ptr verrà inizializzato su 0, passerà a falso e Bar predefinito-costruito? Immagino che questa domanda sia ridondante, perché ci sarebbe poco da fare negli elenchi di inizializzatori se valori degli argomenti non specificati == comportamento non definito.
Potrei anche essere indirizzato alla sezione dello standard C++ che indica il comportamento nel caso degli elementi dell'elenco di inizializzazione non vengono forniti argomenti?
class Bar
{
Bar() { }
};
class SomeClass;
class AnotherClass
{
public:
SomeClass *ptr;
bool toggle;
Bar bar;
AnotherClass() : ptr(), toggle(), bar() { }
// as opposed to...
// AnotherClass() : ptr(NULL), toggle(false), bar(Bar()) { }
};
Possibile duplicato di [Elenco di inizializzazione del costruttore con inizializzazione vuota] (https://stackoverflow.com/questions/11164394/constructor-initialization-list-with-empty-initialization) – Justin