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是一个可以从生产代码中编译的宏,这意味着你可以支付边界的开销 – 在开发中检查你的容器而不是生产而不修改你的代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |