在 C++ 中,可以声明堆栈分配的对象const
:
const Class object;
之后尝试在此类对象上调用非常量方法是未定义的行为:
const_cast<Class*>( &object )->NonConstMethod(); //UB
堆分配的对象会const
产生同样的后果吗?我的意思是有可能是以下情况:
const Class* object = new Class();
const_cast<Class*>( object )->NonConstMethod(); // can this be UB?
也是未定义的行为吗?