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

How to create a 'global' instance in C++?

本文关键字:全局 实例 创建 C++      更新时间:2023-10-16

我要说的是,请告诉我我是错的还是对的。

  • 如果我在循环中创建类的实例,一旦该循环完成,该实例将被删除。

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

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

类是否首先在堆栈上创建?

还是其他地方?

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

我对此真的很困惑,感谢您的任何帮助。

您可以:

1-制作包含指向object的指针的全局vector
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);