我在 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
关于C++ 将 "struct"类型的参数作为引用(和)传递或按值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27058890/