我意识到之前已经问过类似的问题,但我没有找到问题的答案,所以我要在这里发布。
iteratorHelper
以accountNr
为参数,搜索unique_ptrs的向量并返回bool。
问题出在第二种方法中。
getAccInfo(size_t pAccNr)
中的if语句给了我一些问题。
我的IDE抱怨" iteratorHelper
"说那个
该对象具有与成员函数" Client :: iteratorHelper"不兼容的类型限定符。对象类型是const Client
我不完全确定我在这里失踪了所以如果有人能指出我正确的方向吗?
auto Client::iteratorHelper(size_t accountNr ) {
return find_if(
accounts.begin(), accounts.end(),
[&accountNr ](const unique_ptr<Account>& account) {
return account->getAccountNr() == accountNr;
}
);
unique_ptr<Account> const & Client::getAccInfo(size_t pAccNr) const {
if (iteratorHelper(pAccNr) != accounts.end()) {
auto const& index = distance(accounts.begin(), iteratorHelper(pAccNr));
return accounts[index];
}
return nullptr;
}
答案 0 :(得分:0)
iteratorHelper
不是const
。您是从const
函数getAccInfo
调用它。这是非法的。