编译时出现下面错误
error C2338: Invalid Type for cocos2d::Vector<T>! (..\Classes\GameScene.cpp) 72行
打开CCVector.h文件查看第72行代码
static_assert(std::is_convertible<T, Ref*>::value, "Invalid Type for cocos2d::Vector<T>!");
我的代码如下:
头文件BulletLayer.h
class Bullet;
class BulletLayer : public Layer {
Vector<Bullet*> _bullets;
......
};
Bullet类定义在BulletLayer.cpp文件中
class Bullet : public Sprite {
......
};
一看似乎没有问题呀,Bullet继承Sprite类,而Sprite就是继承Ref的。
找了好久原因,最后才查到,问题出在Bullet是前向声明,把Bullet类声明在头文件BulletLayer.h问题就解决了
头文件BulletLayer.h
class Bullet : public Sprite {
......
};
class BulletLayer : public Layer {
Vector<Bullet*> _bullets;
......
};