引用有存储位置还是只是另一个位置的别名?这是否因 C++ 版本而异,还是与所有 C++ 版本一致?如果一个引用有一个存储位置,那么它是否只允许像类型这样的指针上的值语义?
当你这样使用引用文献时,它是如何工作的:
struct aStruct{
int aVariable;
aClass& aReferencetoaClass;
};
是占用空间还是别名?
最佳答案
latest C++20 spec (§ 9.2.3.3)并且至少从 C++ 2005 draft spec 开始状态:
It is unspecified whether or not a reference requires storage
实际实现是根据具体情况而定的。显然,如果一个类有一个成员变量,它是一个需要存储在某处的引用。但是正如您所说,编译器在何时将引用单独用作别名时有回旋余地。
关于c++ - 引用是否有存储位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56836507/