gpt4 book ai didi

c++ - 使用常量迭代器重载运算符

转载 作者:行者123 更新时间:2023-11-28 06:33:44 24 4
gpt4 key购买 nike

我有一个常量迭代器类,它包含以下用于重载多个运算符函数的方法

self_reference operator=( const SDAL_Const_Iter& src ) {
index = src.index;
return *this;
}

self_reference operator++() {
index = index + 1;
return *this;
}

self_type operator++(int) {
SDAL_Const_Iter results = *this;
++index;
return results;
}

index 变量的类型是const int

我的编译器提示我试图修改常量对象(更具体地说,“错误 C2166:左值指定常量对象”),我知道这一点;但是,我看不到其他方法可以重载这些函数。有人可以详细说明如何在不引起编译器问题的情况下编写这些重载吗?

最佳答案

我认为问题出在 const int 作为 index 变量。

常量迭代器不应允许对容器数据进行非常量访问。不过,迭代器本身是可变的(它必须能够迭代)。将 index 更改为 int 应该可以解决问题。

关于c++ - 使用常量迭代器重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27115998/

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