class Foo {
public:
static const int kType = 42;
};
void Func() {
Foo *bar = NULL;
int x = bar->kType;
putc(x, stderr);
}
¿Es este comportamiento definido? Leí el estándar de C++ pero no pude encontrar nada sobre el acceso a un valor estático de const como este ... He examinado el ensamblado producido por GCC 4.2, Clang ++ y Visual Studio 2010 y ninguno de ellos realiza una desreferencia del NULL puntero, pero me gustaría estar seguro.C++ acceso const estático a través de un puntero NULL
La mayoría de los compiladores deberían advertirle sobre el acceso a los miembros estáticos/const a través de un puntero de instancia. – cHao