c++ - 错误:A 类不是 B 类 C++ 的基础
问题描述
当我尝试通过此函数调用 ** 行中的函数时:
template<class T,int SIZE>
T const& Array<T,SIZE>::const_iterator::operator*() const {
return this->Array<T,SIZE>::iterator::operator*();
}
它给了我以下错误:
error: 'Array<int, 3>::iterator' is not a base of 'const Array<int, 3>::const_iterator'
谁能解释为什么?
template <class T, int SIZE>
class Array {
T data[SIZE];
public:
explicit Array();
Array(const Array& a); //copy constructor
~Array(); //destructor
class iterator {
Array<T,SIZE>* array;
int index;
public:
iterator(Array<T,SIZE>* array,int index);
T& operator*() const; //**
};
class const_iterator {
const Array<T,SIZE>* array;
int index;
public:
T const& operator*() const;
};
}
解决方案
推荐阅读
- androidx - AuthenticationCallback.onAuthenticationFailed() 不会在 Pixel 4 上使用人脸生物识别技术调用
- python - 如何在不修改程序的情况下让请求打印出发送的原始 HTTP 请求?
- android - Jetpack Compose:使用 Modifier.selectable 时,如何防止可组合布局在滚动时可选?
- python - 在 Python 中将 15 分钟的数据重采样为 5 分钟的间隔
- svm - 无法理解 SVM 中的双重求和
- vue.js - v-if 中的路由器链接正在工作,但 url 没有改变
- jquery - Lua 中是否有像 jQuery 那样的“this”类型的选择器?
- angular - Angular + Capacitor:输入未与键盘对齐
- java - 如何使用 Jackson 将 json 对象的属性解析为地图
- python - 用 plotly 连接线之间的间隙