2013-08-04 35 views
0

我將無符號值存儲在向量中,我需要在另一個類中使用這些值。嘗試在函數中返回矢量值時出現錯誤,我不知道我在做什麼錯誤!這裏是我的代碼部分:從class_Type名稱訪問矢量值不允許錯誤

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; 
}; 

感謝您的幫助

回答

1

TimeVector是類型名。你正在使用它,就好像它是一個變量。這好像是說

int == 42; 

你需要一個變量:

int i = 3; 
i == 42; 

什麼你可能想要的是在你的類返回TimeVector一個實例:

typedef vector<unsigned> TimeVector; 
const vector<unsigned> & get() const{return m_tv;) 
+0

非常感謝響應該快速。當我嘗試你的解決方案時,我得到了錯誤:期望和表達。任何想法我失蹤?謝謝 – samy

+0

@samy你很可能做錯了什麼。但是我發現你已經有了'TimeVector'數據成員,所以也許你只是想使用它。 – juanchopanza

相關問題