加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 运算符[]的重载

发布时间:2020-12-16 10:29:04 所属栏目:百科 来源:网络整理
导读:可能需要重载下标运算符的场景是什么? 断言功能与此有什么关系?我在大多数情况下看到使用assert的下标重载,需要对此进行解释. 解决方法 您可以在自定义容器上重载[]运算符,以提供访问元素的语法/语义更清晰的方式. 例如my_container [3] = 9;比my_containe
可能需要重载下标运算符的场景是什么?

断言功能与此有什么关系?我在大多数情况下看到使用assert的下标重载,需要对此进行解释.

解决方法

您可以在自定义容器上重载[]运算符,以提供访问元素的语法/语义更清晰的方式.

例如my_container [3] = 9;比my_container.set(3,9)更清晰;

当然,你可以重载[]基本上做任何事情,但你可能不应该.例如,你可以使my_object [3]将my_object增加3,但语义上[]运算符传达了index-by-index,并且让接口符合预期总是更好.

您可以使用assert进行快速边界检查;它会导致程序混乱,这总是比引入细微的内存损坏更可取.好处是assert是一个可以从生产代码中编译的宏,这意味着你可以支付边界的开销 – 在开发中检查你的容器而不是生产而不修改你的代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读