簡體   English   中英

structname &function 在下面的例子中是如何工作的?

[英]How does structname &function work in the following example?

#include<iostream>
struct emp
{
    char name[20];
    int age;
    float sal;
};
emp e1={"Amol",21,2345.00};
emp e2={"Ajay",23,4500.75};
int main()
{
     emp &fun();
     fun()=e2;
     std::cout<<std::endl<<e1.name<<" "<<e1.age<<" "<<e1.sal<<std::endl;
     return 0;
}
emp &fun()
{
     std::cout<<std::endl<<e1.name<<" "<<e1.age<<" "<<e1.sal<<std::endl;
     return e1;
}

我不明白上面例子的工作原理,這和 &b = a 一樣嗎? e2 的值是如何傳遞給 &fun() 的?

注意:這是相當復雜的編碼風格的例子

main()第一行是函數fun的前向聲明,它返回對emp對象的引用。 因此,表達式fun()被視為泛左值,它可以位於賦值的左側,或者是任何其他需要左值的操作的目標。

fun返回對e1的引用,因此賦值在語義上等同於e1 = e2; 前面是將 e1 成員的值序列化為cout的副作用,如fun()狀態的定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM