从堆栈中删除对象

The*_* do 0 c++ delete-operator

从堆栈中手动删除对象是否是错误/非法的C++,或者有可接受的情况?

编辑

Constructor(pointer parent, pointer left, pointer right):parent_(parent),left_(left), right_(right)
{   }

   ~Constructor()
        {
        delete parent_;
        delete left_;
        delete right_;
        }


main()
{
Object parent;
Object left;
Object right;
Constructor c(&parent,&left,&right);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法检查对象是在堆上还是堆栈上?

sth*_*sth 12

您只能被允许delete使用已分配的对象new.如果您尝试调用delete指向堆栈中对象的指针,则可能会导致程序崩溃.