我有以下一段代码
#include <string>
int Foo(const std::string& str){
std::string::iterator start;
start = str.begin();
return 0;
}
当我用 GCC 4.7.3 编译它时,我收到一个错误。我怀疑错误弹出是因为我试图分配一个
std::string::const_iterator;
对一个
std::string::iterator
所以换行
std::string::iterator start;
至
std::string::const_iterator start;
编译得很好。
我的问题是 std::string 成员函数 begin() 如何识别它被调用的对象是 const 并因此返回一个 const_iterator。
使问题更笼统:
我可以更改或以某种方式重载类成员函数以在被 const 对象调用时采取不同的行为吗?