&变量

lit*_*tuk 1 c++ reference

我在某处看过,在C++中你不能给出如下定义:

int& a;
Run Code Online (Sandbox Code Playgroud)

但是只有:

int b;  
int& a=b;  
Run Code Online (Sandbox Code Playgroud)

由于&是另一个变量的引用,因此无法单独定义.另一方面,我看到它一直在代码中单独定义.

有人可以向我解释你怎么定义

int & a;   
Run Code Online (Sandbox Code Playgroud)

没有指定对哪个变量的引用?

Ben*_*ley 7

您可能会在类中看到它,但是您需要在所有构造函数中初始化时分配它,例如

class X
{
    int & a;
public:
    X(int & i) :a(i) {}
};
Run Code Online (Sandbox Code Playgroud)


Mat*_*ieu 5

考虑到C++标准,您不能单独声明一个单元化引用:

不应引用引用,不引用引用数组,也不引用引用指针.引用的声明应包含初始值设定项(8.5.3),除非声明包含显式的extern说明符(7.1.1),是类声明中的类成员(9.2)声明,或者是参数的声明或返回类型(8.3.5); 见3.1.应初始化引用以引用有效的对象或函数.[注意:特别是,在明确定义的程序中不能存在空引用,因为创建这样的引用的唯一方法是将它绑定到通过解引用空指针获得的"对象",这会导致未定义的行为.如9.6中所述,引用不能直接绑定到位域.]

-ISO/IEC 14882:1998(E),ISO C++标准,见8.3.2节[dcl.ref]