这个问题几乎说明了一切。我需要初始化对空 STL 容器的引用(更准确地说,是std::set
)。
试图:
typedef std::set<bozo *> bozo_set;
class BozoClass { public: BozoClass(): bozosetref(bozo_set()) {} }
将获得类似于以下内容的编译器错误:
bozo.cc:104: error: invalid initialization of non-const reference of type ‘bozo_set&’ from a temporary of type ‘bozo_set’
(只是一个旁注:这不是问我是否应该使用typedef
它。我对此发表评论,但这并不是真正的问题。)
编辑:由于对此有很多评论,因此引用 this 的目的是允许外部类更改bozo
该集合的元素,而不是使用大量不需要的方法BozoClass
来管理该集合。