Konstruktor / Elementinitialisierungsliste
-
Ist es egal, ob man einen Konstruktor
foo(int a=0,int b=0): A(a), B(b) {}oder
foo () : A(0), B(0) {}aufsetzt?
-
Natürlich nicht. Den ersten Konstruktor kannst Du mit (bis zu) zwei Parametern aufrufen, den zweiten nicht.
-
Und mit der ersten Variante hast Du noch eine implizite Kovertierung.
foo f = 3;
-
brotbernd schrieb:
Und mit der ersten Variante hast Du noch eine implizite Kovertierung.
foo f = 3;Und das auch nur, weil die Parameter default-parametrisiert sind.
Man kann die beiden ctors zwar gleichermaßen aufrufen, und sie verhalten sich in diesem Fall auch so, aber wenn es darum geht sowie berniebutt zu Handeln (oder zwei Werte explizit vorzugeben), dann sind das zwei völlig verschiedene Funktionen.