今天要初始化一组对象

1
2
3
4
5
6
7
8
9
cls_enemy * enemy0[]={
new cls_enemy(),
new cls_enemy(),
new cls_enemy(),
new cls_enemy(),
new cls_enemy(),
new cls_enemy(),
new cls_enemy()
};

像这样初始化也太麻烦了吧,看看有什么对象链表之类的东西。

在VC里可以用CStringArray和CStringList或者CPtrArray或者CPtrList来做,那么STL里是一样的。正确做法可以是push_back的元素用new XX()做参数,但是效果好像也差不多,放在容器里看起来好像容易管理一些。

1
2
3
4
vector<cls_enemy*> ev;
for (i=0;i<7;i++) {
    ev.push_back(new cls_enemy());
}

需要注意vector是模板类型,可以放任何类型,但是基于效率的考虑,最好放对象指针。

发表评论