小编Mad*_*eon的帖子

使用虚拟派生方法返回不同的迭代器

假设我有一个虚拟基类Base,它的部分行为类似于一个容器,具有两个派生类VectorLikeRangeLike. 我想实现以下目标:

class VectorLike : public Base {
    std::vector<int> data;
public:
    virtual std::vector<int>::const_iterator cbegin() { return data.cbegin() }
    virtual std::vector<int>::const_iterator cend() { return data.cend() }
}

class RangeLike : public Base {
    int min, max;
    class const_iterator {
        int x;
    public:
        int operator++() { return ++x }
        bool operator==( const_iterator rhs ) { return x == rhs.x }
        const_iterator( int y ) { x = y }
    }
public:
    virtual const_iterator cbegin() { return …
Run Code Online (Sandbox Code Playgroud)

c++ oop iterator

5
推荐指数
1
解决办法
1485
查看次数

标签 统计

c++ ×1

iterator ×1

oop ×1