This question already has answers here:
Can a C++ class determine whether it's on the stack or heap?
(15个答案)
7年前关闭。
可以在编译时(在堆栈上)分配C++对象的内存。
或动态(常用方法)
C++语言中是否内置了方法,该方法可以区分对象是静态分配还是动态分配?内置是指使用模板或关键字等(非编程/算法方法)。
本质上,目标是“标记”未使用
(15个答案)
7年前关闭。
可以在编译时(在堆栈上)分配C++对象的内存。
MyClass mc;
或动态(常用方法)
MyClass *mc = new MyClass();
C++语言中是否内置了方法,该方法可以区分对象是静态分配还是动态分配?内置是指使用模板或关键字等(非编程/算法方法)。
本质上,目标是“标记”未使用
new
运算符分配的对象(动态分配)。 最佳答案
正如StoryTeller所说,您可能想要重载new
运算符。
class A{
private:
bool isDynamic;
public:
void *operator new(size_t size){
isDynamic = true;
}
关于c++ - 区分C++对象是否是动态分配的? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15915258/