为std :: vector <struct> </struct>创建一个getter函数

时间:2014-12-08 22:54:53

标签: c++ templates vector std getter

这是我第一次真正在这里问过一个问题,所以如果格式化稍微偏离,我会道歉。此外,我在几年内第一次回到编程,所以我生锈了,我很困惑如何为我的结构矢量创建一个getter函数。

assetLoader.h:

public:
    assetLoader();
    virtual ~assetLoader();

    std::vector<assetLoader:playerStruct> getTypesOfPlayer() {return typesOfPlayer;}

private:
    //Create a struct to hold the Player data
    struct playerStruct
    {
    };
    playerStruct newPlayer;
    std::vector <playerStruct> typesOfPlayer;

每当我尝试编译解决方案时,我都会遇到以下错误:

错误:模板参数1无效

错误:模板参数2无效

我已经尝试了几种不同的尝试来自己解决这个问题,但是我还没有成功,所以任何帮助都会受到高度赞赏:)

1 个答案:

答案 0 :(得分:2)

您需要转发声明您的playerStruct或之前定义它。

这是你向前宣布的方式:

class assetLoader{
  struct playerStruct;
public:
  assetLoader();
  virtual ~assetLoader();
  std::vector<assetLoader::playerStruct> getTypesOfPlayer() {
    return typesOfPlayer;
  }
private:
  //Create a struct to hold the Player data
  struct playerStruct
  {
  };
  playerStruct newPlayer;
  std::vector <playerStruct> typesOfPlayer;
};