Удаление константных объектов
От: Аноним  
Дата: 06.12.05 15:15
Оценка:
Здравствуйте,

Кто-нибудь может объясненить, почему следующий код компилируется

class cClass
{
};

int main(int argc, char* argv[])
{
const cClass* obj = new cClass;
delete obj;

return 0;
}

(как VC++ .NET, так и gcc 3.2 компиляторами) несмотря на следующее утверждение (MSDN, статья 'delete Operator'):

Pointers to const objects cannot be deallocated with the delete operator.

?
Я понимаю, что если запретить удаление динамически созданного константного объекта (без грязных трюков с явным преобразованием типов и использования const_cast), это тоже будет плохо, и все же...

Хотя в стандарте С++ (пункт 5.3.5.2) говорится, что все корректно юна, MSDN врёт?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.