如何在 C++ 中创建 'global' 实例?
How to create a 'global' instance in C++?
我要说到这里了,请大家指正。
- 如果我在循环中创建 class 的实例,一旦该循环完成,该实例将被删除。
如何使用循环创建 class 的多个实例?
我可以做一些类似变量的事情,在堆上创建它们吗?
classes 是否首先在堆栈上创建?
或者其他地方?
如何正确创建 class 的 'global' 实例?
我真的很困惑,感谢您的帮助。
您可以:
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);
我要说到这里了,请大家指正。
- 如果我在循环中创建 class 的实例,一旦该循环完成,该实例将被删除。
如何使用循环创建 class 的多个实例?
我可以做一些类似变量的事情,在堆上创建它们吗?
classes 是否首先在堆栈上创建?
或者其他地方?
如何正确创建 class 的 'global' 实例?
我真的很困惑,感谢您的帮助。
您可以:
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);