用cocos2d::Vector的push_back后为什么size是0

for (int i=0; i<8; i++)
{
Bullet* bul=Bullet::createBullet(2);
addChild(bul,-1);
BulletManager::getInstance()->getVecBullet().pushBack(bul);
CCLOG(“size,%zd”,BulletManager::getInstance()->getVecBullet().size());
bul->setPosition(Vec2(20-(i%4)5-30(i/4), 10));
}
Bullet* Bullet::createBullet(int num)
{
Bullet* bul=new Bullet();
if (bul&&bul->initWithSpriteFrameName(BName))
{
bul->autorelease();
return bul;
}
CC_SAFE_DELETE(bul);
return nullptr;
}

哎。。好难用:12::12::12:

getVecBullet()
这个的返回值是引用吗?

Vector<Bullet*> BulletManager::getVecBullet()
{
return vecBullet;
}
vecBullet是BulletManager的私有成员变量

好吧,改成引用可以了,谢谢 :2: :2:

这就是问题所在了
你这个函数返回了一个vecBullet的拷贝而不是vecBullet本身
返回引用可解决你这个问题