C++迭代器 - 奇怪的转换

Nef*_*pus 0 c++ iterator vector

我在使用迭代器时遇到了非常奇怪的错误,我不确定要考虑什么:error: could not convert ‘0’ from ‘int’ to ‘CCarList’

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
    //...
}
Run Code Online (Sandbox Code Playgroud)

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;});
}
Run Code Online (Sandbox Code Playgroud)

m_ownersvector<TOwner*>(TOwner是struct.)

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();
};
Run Code Online (Sandbox Code Playgroud)

Bil*_*ill 5

ListCars返回一个CCarList.你试着返回0,一个int.有没有从转换intCCarList,这样的尝试失败.