This question already has answers here:
Can a C++ class determine whether it's on the stack or heap?

(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/

10-11 22:26
查看更多