class IIntro
{
public:
  explicit IIntro(Sprite* _parent = null, IPrize* _prizeImpl = null);
  virtual ~IIntro() {}

  virtual void Play(bool _play = true) = 0;
  static void CreatStateAnims(Sprite* _parent);

protected:

  static typedef boost::shared_ptr<AnimSprite> SPAS;
  static std::vector<SPAS> introAnims;

};
我收到“对IIntro::introAnims的 undefined reference ”的编译器错误。
如何初始化
static typedef boost::shared_ptr<AnimSprite> SPAS;
static std::vector<SPAS> introAnims;
变量。
提前致谢。

最佳答案

您已经声明了变量,但尚未定义它。您需要将定义添加到源文件:

std::vector<IIntro::SPAS> IIntro::introAnims;

请注意,SPAS是类型,而不是变量,因此不需要定义。不过,您确实需要从其声明中删除static;这仅对变量和函数有意义,而对类型没有意义。

08-19 23:25