Deleting a const Object

Deleting a const Object

In earlier stages of C++, it was impossible to delete a const object, even if that object was constructed on the free store. This could cause memory leaks.

However, the C++ Standard was changed recently. You can now use operator delete to destroy const objects that were created by new:

   class Foo{};  int main()  {   const char * p = new char[12]; // ptr to const char   const Foo * const f = new Foo; // const ptr to const Foo   delete p; // fine   delete f; // fine  }

Note that some existing compilers may not support this feature yet.


Share the Post: