簡體   English   中英

C ++將“ struct”類型的參數傳遞為引用(&)或按值傳遞

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

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