首页 > 解决方案 > 错误: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;
};

    }

标签: c++

解决方案


推荐阅读