我在想如果在解除引用指针时是否可以添加代码(实际指向的对象的有效性检查)。 我看到很多重载operator - >的主题,但似乎操作符是在一个对象上调用的,而不是指针。也许(可能)有我误解的东西。C++过载或监视解除引用操作符(在指针上)
这里有一个例子:
T* pObj = new T();
pObj->DoStuff(); // call check code (not in DoStuff)
delete pObj;
pObj->DoOtherStuff(); // call check code (not in DoOtherStuff)
的“校验码”应该是独立于被调用的函数(或成员)。我的想法是在类中将成员设置为int,并在构造(和销毁)时为其赋予一个定义的值,然后检查该值。
正如你可能猜测我试图检查使用的无效指针。我尝试阅读代码,但它太大而且复杂,不能错过许多潜在的错误。
感谢您的回答和见解。
如果你真的担心悬挂指针,然后使用一个智能指针,如boost :: shared_ptr。 – Nick 2011-04-20 08:15:51