C++ では、以下に示す実装 2 に対する実装 1 の利点は何ですか。どちらも一種の参照渡しなので、どちらの場合もメモリは HEAP から割り当てられませんか? その場合、一方が他方よりも優れている点は何ですか。
第二に、どちらの方法が優れているか - 値渡しまたは参照渡し。値による受け渡しを使用する必要がある場合と、参照による受け渡しを使用する必要がある場合。
実装 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;
};