Kann ein Heap-zugewiesenes Objekt in C ++ const sein?
In C ++ kann ein Stack-allokiertes Objekt deklariert werdenconst
:
const Class object;
danach ist der Versuch, eine nicht konstante Methode für ein solches Objekt aufzurufen, undefiniertes Verhalten:
const_cast<Class*>( &object )->NonConstMethod(); //UB
Kann ein Heap-allokiertes Objekt seinconst
mit den gleichen folgen? Ich meine, ist es möglich, dass die folgenden:
const Class* object = new Class();
const_cast<Class*>( object )->NonConstMethod(); // can this be UB?
ist auch undefiniertes Verhalten?