标签: c++ dynamic
这两个分配有什么区别?
CPolygon trgl; CPolygon * ppoly2 = &trgl;
和
CPolygon * ppoly2 = new CPolygon();
答案 0 :(得分:2)
new在堆上创建一个动态对象,而第一个语法在全局内存部分或堆栈上创建对象。
new
因此,如果在堆栈上分配了对象,则在对象超出范围时将自动删除该对象。如果对象是全局的,它将保持该过程的生命周期。
分配了new的对象必须使用delete删除。
delete