如何在C++中创建"全局"实例?
How to create a 'global' instance in C++?
我要说的是,请告诉我我是错的还是对的。
- 如果我在循环中创建类的实例,一旦该循环完成,该实例将被删除。
如何使用循环创建类的多个实例?
我可以对变量做一些事情,在堆上创建它们吗?
类是否首先在堆栈上创建?
还是其他地方?
如何正确创建类的"全局"实例?
我对此真的很困惑,感谢您的任何帮助。
您可以:
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);
相关文章:
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 如何创建一个空的全局类并在启动时实例化它
- 从函数中全局删除并重新实例化数组结构,而无需在编译时知道数组的大小
- 类与命名空间的全局实例
- 为什么自删除的全局 Vulkan 实例仅在添加层时才导致段错误?
- 如何在C++中动态分配全局字符数组中的类实例?
- 如何强制调用类的全局实例的析构函数和构造函数(以便"re-init"类实例)
- 如何在C++中创建"全局"实例?
- 如何从函数中创建类的全局实例
- C++/Clr 中C++全局实例上的多线程
- 通过其他文件中的另一个全局变量使用类的全局实例
- C++-防止全局实例化
- 用c++对象的全局实例扩展嵌入式python解释器
- 为什么GCC将对全局实例构造函数的调用放在不同的部分(取决于目标)
- 在 MFC 中,为什么我需要创建 CWinApp 的全局实例
- 我可以有一个异常的静态全局实例吗?
- 类的多线程和全局实例
- 类的全局实例(跨多个文件)
- 为什么我不能将此全局实例化为指针
- 创建构造函数引用全局变量的类的全局实例时,C++ 程序崩溃