c++ - const 和非常量函数的重载如何工作?

标签 c++ function stl constants overloading

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 和非常量函数的重载如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41937754/

相关文章:

c++ - 比较模板类型和具体类型的实例

c++ - 以错误大小呈现的 SFML 窗口

javascript - 调用 OnChange 时运行 jquery 函数

c++ - 如何使用 EASTL 跟踪内存使用情况?

c++ - remove-erase 和 find-erase 有什么区别

c++ - 用于将 C++ 头文件与其基础文件进行比较的开源实用程序

c++ - 在共享库中创建线程是不好的做法吗?

algorithm - 在 int 中找到第 n 个 SET 位

javascript - 从数组末尾开始查找indexof值

c++ - STL 算法如何识别容器?