在 C++ 中,实现 1 与实现 2 相比有什么优势,如下所示。由于两者都是通过引用传递的,在这两种情况下,内存不会从 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;
};