可能有重复:
如何在构造函数中判断一个对象是静态分配还是动态分配?
Foo的构造函数能区分这两种情况吗?
如何在构造函数中判断一个对象是静态分配还是动态分配?
struct Foo {
Foo ();
};
int main ()
{
Foo foo; // Case A
Foo * p_foo = new Foo (); // Case B
}
Foo :: Foo ()
{
if (allocated_on_stack) {
// Case A
}
if (allocated_on_heap) {
// Case B
}
}
Foo的构造函数能区分这两种情况吗?
this
是否是当前线程或当前进程中任何线程的堆栈地址。 - Steve Jessop