Давайте посмотрим следующий код:
template<class T,class Ref>
class test{
private:
T data;
public:
test(const T& x):data(x){};
const Ref operator*(){
return data;
};
}
int main(){
test<int,int&> t(1);
*t=2;
return 0;
}
Приведенный выше код работает хорошо.Функция operator*()
должна возвращать постоянную ссылку const Ref
, но почему она только что вернула Ref
?