2015-03-24 99 views
0

我遇到非常奇怪的錯誤與迭代器工作時,我真的不知道該怎麼想這件事:error: could not convert ‘0’ from ‘int’ to ‘CCarList’C++迭代器 - 奇怪的轉換

CCarList CRegister::ListCars(const string& name, const string& surname) const { 
    auto ownerIt = findOwner(name, surname); 
    if (ownerIt == m_owners.end()) return 0; //Error is on this line 
    //... 
} 

findOwner:

vector<TOwner*>::const_iterator CRegister::findOwner(const string& name, 
                const string& surname) const 
{ 
    return lower_bound(m_owners.begin(), m_owners.end(), TOwner(name, surname), 
     [](const TOwner* a, const TOwner& b){return (*a) < b;}); 
} 

m_ownersvector<TOwner*>(TOwner是結構體)

CCarList:

class CCarList { 
    vector<TCar*>::iterator m_it; 
    const vector<TCar*>::iterator m_end; 
public: 
    CCarList(vector<TCar*>::iterator it, const vector<TCar*>::iterator end): 
           m_it(it), m_end(end){} 
    CCarList(){} 
    string RZ() const; 
    bool AtEnd() const; 
    void Next(); 
}; 

回答

6

ListCars返回CCarList。您嘗試返回0,一個int。沒有從intCCarList的轉換,因此嘗試失敗。

+0

哦,我的道歉。我真的有點過度勞累:D – NefariousOctopus 2015-03-24 23:10:02

+0

我建議定期休息以幫助你的大腦:http://pomodorotechnique.com/:D – Bill 2015-03-24 23:12:13