[英]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.