0

符号なしの値をベクトルに格納し、これらの値を別のクラスで使用する必要があります。関数でベクトル値を返そうとするとエラーが発生し、何が間違っているのかわかりません! ここに私のコードの一部があります:

class Rider
{
  friend istream &operator>>(istream &in, Rider &rhs);

public:
  Rider(const string &name = ""): m_name(name){}

  const string &name() const {return m_name;}
  const string &team() const {return m_team;}
  const string &country() const {return m_country;}
  //const unsigned &numOfSatges() const {return m_tv;}

  typedef vector<unsigned> TimeVector;
  const vector<unsigned> & get() const{return TimeVector;) //Error: Type Name is not allowed!

private:

  string m_name;
  string m_team;
  string m_country;

  //unsigned m_numOfStages;

  TimeVector m_tv;

};

ベクトルに格納されている符号なしの値にアクセスしようとしている場所は次のとおりです。

class Match_Stage : public unary_function<const Rider&, bool>
{
public:
  Match_Stage(const unsigned stage) : m_stage(stage){}
  bool operator()( const Rider &rider) const
  {
    return rider.TimeVector == m_stage; //Error: Type Name is not allowed!
  }

private:
   unsigned m_stage;
};

助けてくれてありがとう

4

1 に答える 1

1

TimeVectorタイプ名です。変数であるかのように使用しています。と言うようなものです

int == 42;

変数が必要です:

int i = 3;
i == 42;

おそらくあなたが望んでいたのTimeVectorは、クラスで のインスタンスを返すことでした:

typedef vector<unsigned> TimeVector;
const vector<unsigned> & get() const{return m_tv;)
于 2013-08-04T07:57:32.807 に答える