2017-08-27 108 views

回答

6

A & A1 = getA1();

A &表示「對A對象的引用」。等號左邊的那一行的部分是聲明一個類型爲reference-to-A的局部變量;該變量被命名爲A1。

getA1()是一個函數,它返回對A對象的引用。

因此,上面的行聲明瞭一個名爲A1的引用對象,併爲該引用賦予了getA1()返回的引用值。

您可以使用您的reference-to-an-A對象,與您使用實際的A對象幾乎相同,除非A對象的第二個副本已作爲函數傳遞其返回值的一部分你的代碼;相反,您將在getA1()函數有權訪問的相同A對象上操作(在堆棧之外的某個對象上)。 (在這方面,引用的行爲有點像指針,即使您使用的語法與您在普通的舊對象上使用的語法相同)

例如,

A& A1 = getA1(); 
A1.foo(); // calling a function on the reference 

A A2 = A1; // let's make our own local copy of the object, just for fun 
A2.foo(); // and we can call a function on that just the same way