C++引用集合

C++ reference collections

本文关键字:集合 引用 C++      更新时间:2023-10-16

所以。。。你不能做一个引用数组,但你能构建一个处理引用、指针和值的集合吗?

Collection<Integer32*> a;
Collection<Integer32&> b;
Collection<Integer32> c;

这是我遇到的问题:

template <class ItemType> class Collection
{
    public:
        Collection(ItemType array[]);  // or ItemType*, doesnt matter
    protected:
        ItemType* innerArray;
};

编译器说没有指向引用的指针。。。可能的

否-Collection<Integer32&> b;无效,不能有引用集合。

剩下的是合法的——你的类应该编译。

像普通数组这样的标准容器不支持将引用作为值类型,但如果您创建自己的集合类型,则可以做到这一点。

在内部,集合必须将引用存储为可以复制和分配的内容。您可以使用普通指针,也可以查看std::reference_wrapper来获得这样的表示。

您可能需要对参考案例使用部分专业化。