У меня есть следующая функция в 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
std:string&
as const
?
Family
?