小编Pet*_*ard的帖子

C++/C对象 - > isOnStack()

我希望能够在运行时确定指针是否在堆栈上,原因有很多.就像我将它传递给函数调用一样,我可以确定是否需要克隆它.或者我是否需要删除它.

在Microsft C(VC 6,7,8)中,是否有一种方法可以检查指针,看它是否在堆栈中?我只关心在拥有该对象所在堆栈的线程上确定这一点.

就像是

static const int __stack_size和__stack_top

???? 谢谢!

c++

5
推荐指数
4
解决办法
477
查看次数

如何在类层次结构中隐藏"删除"?

所以我正在从一个"拥有"的对象模型迁移到我正在做的项目中的"托管"对象模型.目前要做一件新的事情

Thing *thing = new Thing();
Run Code Online (Sandbox Code Playgroud)

并摆脱它并摧毁它所有者

delete thing
Run Code Online (Sandbox Code Playgroud)

现在有很多"删除东西",其中很多都是从Thing指针的超类删除,因为超类有一个虚拟析构函数.

现在在托管模型中有一个带有虚拟析构函数的基类,管理器将删除它.用户应该在其上调用"release"而不是删除.

所以我想在编译时以某种方式拒绝"删除东西"作为编译时错误.由于基础上的虚拟析构函数,使析构函数"受保护"似乎不起作用.它至少需要保护子类(我认为).

有人有主意吗?

c++

3
推荐指数
1
解决办法
825
查看次数

标签 统计

c++ ×2