stl充满了这样的定义:
iterator begin ();
const_iterator begin () const;
由于返回值不参与重载分辨率,因此此处唯一的区别是该函数为
const
。这是过载机制的一部分吗?如下所示的行的编译器算法是什么:vector<int>::const_iterator it = myvector.begin();
最佳答案
在示例中,您给出了:
vector<int>::const_iterator it = myvector.begin();
如果
myvector
不是const,则将调用begin()
的非const版本,您将依赖于从迭代器到const_iterator的隐式转换。关于c++ - const和非const函数的重载如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41937754/