class Foo {
public:
static const int kType = 42;
};
void Func() {
Foo *bar = NULL;
int x = bar->kType;
putc(x, stderr);
}
Questo comportamento definito? Ho letto lo standard C++ ma non ho trovato nulla sull'accesso a un valore const statico come questo ... Ho esaminato l'assembly prodotto da GCC 4.2, Clang ++ e Visual Studio 2010 e nessuno di questi esegue un dereferenziamento del NULL puntatore, ma mi piacerebbe esserne sicuro.C++ accesso const const tramite un puntatore NULL
La maggior parte dei compilatori dovrebbe fornire un avviso sull'accesso di membri static/const tramite un puntatore di istanza. – cHao