数组运算符 [] 重载 const 和非 const 版本

2024-04-26

我接到一个任务来实现一个模板数组类。 要求之一是重载 [] 运算符。 我制作了这两个常量和非常量版本,似乎工作正常。

const T& operator[](const unsigned int index)const

and

T& operator[](const unsigned int index)

我的问题是编译器如何知道要运行哪一个 当我会做类似的事情时:

int i=arr[1]

在非常量数组上?


非常量函数将始终在非常量数组上调用,而 const 函数则在常量数组上调用。

当有两个同名方法时,编译器会根据参数类型和隐式对象参数 (arr) 的类型选择最合适的方法。

我前几天刚刚回答过类似的问题,你可能会发现它很有帮助:https://stackoverflow.com/a/16922652/2387403 https://stackoverflow.com/a/16922652/2387403

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数组运算符 [] 重载 const 和非 const 版本 的相关文章

随机推荐