considere la siguiente situación (simplificado):¿Se pueden usar variables miembro para inicializar otros miembros en una lista de inicialización?
class Foo
{
private:
int evenA;
int evenB;
int evenSum;
public:
Foo(int a, int b) : evenA(a-(a%2)), evenB(b-(b%2)), evenSum(evenA+evenB)
{
}
};
Cuando i instanciate Foo así:
Foo foo(1,3);
continuación evena es 0, evenB es 2, pero se evenSum ser inicializado a 2?
Intenté esto en mi plataforma actual (iOS) y parece funcionar, pero no estoy seguro de si este código es portátil.
Gracias por su ayuda!
Esta es una de las esquinas peligrosas en C++. – iammilind
Codepad es un gran lugar para comprobar tales cosas: http://codepad.org/uFgZpkwN –
@Agent_L: Eso no le dirá si el código es portátil. –