[英]C++ passing argument of “struct” type as reference (&) or passing it by value
我在C ++中具有以下功能:
Family whoAmI(Family myFam,string MyName, int MyAge)
{
myFam.Name = MyName;
myFam.Age = MyAge;
return myFam;
}
它返回這種類型的struct
:
struct Family
{
string Name;
int Age;
};
我的問題是:我希望函數返回特定類型的struct
,在我們的示例中為Family
,但是為了指定函數的返回類型,我必須先聲明該結構並將其轉換為返回類型功能,例如: Family whoAmI() {..}
。 然后,我必須在函數中添加值的struct
,其最終被類似Family
。 這意味着我需要在函數本身中重新聲明一個類似的struct
(這非常消耗內存)。 我所做的是將struct
的引用傳遞給函數,以防止在函數中重復struct
。 現在,這是正確的嗎? 由於它在爭論中占有一席之地,因此較不方便。
現在,我這樣稱呼它:
Family x;
Family result = whoAmI(x, "Mostafa", 25);
使用構造函數。
struct Family {
Family(const std::string& Name, int Age)
: Name(Name), Age(Age) {}
std::string Name;
int Age;
};
// use like:
Family me{"AName", 45}; // or Family me("AName", 45); on old compilers
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.