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/

10-11 22:13
查看更多