繁体   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