如何在C ++中创建“全局”实例?

时间:2018-04-12 22:05:00

标签: c++ class instance

我要说这个,请告诉我,如果我错了或是对的。

  • 如果我在循环中创建一个类的实例,那么一旦该循环结束,该实例就会被删除。

如何使用循环创建类的多个实例?

我可以使用变量做一些事情,在堆上创建它们吗?

首先在堆栈上创建类吗?

还是在其他地方?

如何正确创建类的“全局”实例?

我真的对此感到困惑,谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

你可以:

1-制作一个包含指向vector指针的全局object 2-在循环中分配。
3-根据需要在不需要时使用另一个循环或单独解除分配。

示例:

vector<obj*> v;  

int main(){

    int mysize = 10;

    for(int i=0; i < mysize; i++)  //to allocate on the heap
    {
        v.push_back(new obj) ;
    }

     for(int i=0; i < mysize; i++)  // to deallocate from the heap
    {
        delete v[i];
        v[i] = nullptr;
    }
}

您也可以将对象直接推送到矢量中,如下所示:

vector<obj> v;

int main(){
    for(int i=0; i < mysize; i++) {
        v.push_back(obj()) ;
        v[i].print();
    }
}

或者事实上,如果你知道你循环了多少次,你可以简单地将 Liteness 建议在一行中完成:

vector<obj> v(mysize);