Называется "сменял шило на мыло", теперь какой итератор вернуть - константный или нет
Учи мат. часть. Возвращаемое значение функции, не является частью сигнатурой функции, поэтому так писать не правильно
C++ (Qt)
Data * findA(int A)
{
int index = findAImpl(A);
return getA(index);
}
const Data * findA(int A) const
{
int index = findAImpl(A);
return getA(index);
}
Однако шаблоны предоставляют выбор, какое значение получать
C++ (Qt)
#include <vector>
class Test
{
public:
Test()
{
vec_.push_back(1);
vec_.push_back(2);
foo();
bar();
}
void foo()
{
std::vector<int>::iterator it = vec_.begin();
std::vector<int>::const_iterator cit = vec_.begin();
}
void bar()const
{
std::vector<int>::iterator it = vec_.begin(); // error: conversion from 'std::vector<int>::const_iterator' to non-scalar type std::vector<int>::iterator' requested
std::vector<int>::const_iterator cit = vec_.begin();
}
private:
std::vector<int> vec_;
};
int main()
{
Test a();
return 0;
}