在栈和堆上创建对象的区别

admin   ·   发表于 4个月前   ·   c和c++

栈小,速度快,不需要删除对象,自动创建使用后在可见区丢失后自动删除 c#就是在栈上

堆大,速度慢,适合对象大,或者活动周期长,使用对象指针,需要delete ,java就是在堆上创建对象

栈上创建对象

void Function(){

Entity e;

....

}

堆上

Entity * e; //在堆上创建对象,则必须delete
    {
        e = new Entity("lanweifeng");
        std::cout << e->GetName() << endl;
    }//这个时候e还是没有消失,需要主动delete
    delete e;

0 条回复   |  直到 4个月前 | 152 次浏览
登录后才可发表内容