В C ++, что является преимуществом реализации 1 по сравнению с реализацией 2, указанной ниже.Поскольку оба являются своего рода передачей по ссылке, не будет ли выделяться память из HEAP, в обоих случаях?Если это так, то в чем преимущество одного перед другим.
Во-вторых, какая методика лучше - передача по значению ИЛИ передача по ссылке.Когда нужно использовать Pass by Value, а когда нужно использовать Pass by reference.
Реализация 1:
main()
{
struct studentInfo { int Id; int Age; };
*studentInfo tom;
populateInfo (tom );
printf ("Tom's Id = %d, Age = %d\n", tom.Id, tom.Age);
}
void populateInfo ( struct studentInfo & student )
{
student.Id = 11120;
student.Age = 17;
return;
}
Реализация 2:
main()
{
struct studentInfo { int Id; int Age; };
*studentInfo *tom = new studentInfo;
populateInfo (tom );
printf ("Tom's Id = %d, Age = %d\n", tom->Id, tom->Age);
}
void populateInfo( struct studentInfo *student )
{
student->Id = 11120;
student->Age = 17;
return;
};