我有这段代码,但这不是一个实际的例子。
实施例
class Animal
{
int i;
int& ref;
public:
Animal() : ref(i)
{
}
};
任何人都可以提供一个真实的例子,其中ref需要作为一个类成员,以便我能更好地理解它吗?
答案 0 :(得分:3)
任何时候某个类A的多个对象都需要引用相同或其他类的单个共享实例;例如,几个People
都可以拥有相同的母亲和/或父亲:
class Person {
private:
Person &mother_;
Person &father_;
public:
Person(Person &mother, Person &father) : mother_(mother), father_(father) {}
// ...
}
答案 1 :(得分:1)
当然:模板类std::reference_wrapper<T>
的全部目的是保留一个参考!
这有很多用途。例如,您可以将它传递给std::thread
构造函数(它总是复制)。您还可以创建引用包装器的容器。
当您想要包装输出流时,保持对某些内容的引用可能也很有用;您将原始流作为引用并向其添加内容(例如,可以通过向包装器对象添加对基础流的引用来改进this answer of mine)。
答案 2 :(得分:1)
它基本上与const
指针相同。如果您需要一个指向其他对象的非空指针,并且该指针仅在构造期间分配,您可以选择使用引用。