gpt4 book ai didi

c++ - 如何让我自己写的迭代器支持->?

转载 作者:太空宇宙 更新时间:2023-11-04 16:21:45 25 4
gpt4 key购买 nike

我正在用 C++ 编写自己的迭代器:

class my_iterator {
entity operator*() {
...
}
my_iterator& operator++() {
...
}
}

我可以使用 * 运算符取消引用实体。但是,我能否让我的自定义迭代器支持 -> 操作(后跟取消引用实体的某些属性或方法)?

是否有我可以实现的特定运算符来支持 ->

最佳答案

是的,如果您想要特殊行为,您可以重载 ->,否则您可以通过指针的标准行为获得它。

对于你的情况,你会有类似的东西

entity* operator->() {
return ptr_to_entity;
}

这有点奇怪,因为对于 ->,您的重载返回一个指向对象的指针,然后 -> 用于该对象。

例如上面的内容:

my_iterator_instance->foo === ptr_to_entity->foo

关于c++ - 如何让我自己写的迭代器支持->?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15893834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com