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;
}
哎。。好难用


getVecBullet()
这个的返回值是引用吗?
Vector<Bullet*> BulletManager::getVecBullet()
{
return vecBullet;
}
vecBullet是BulletManager的私有成员变量
好吧,改成引用可以了,谢谢

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