//不允许返回临时变量的引用,无论是否是const引用
const Student& GetStudentA()
{
Student stu;
return stu;
}
//因为会调用一次拷贝构造函数
Student GetStudentB()
{
Student stu;
return stu;
}
//不允许返回局部变量的指针因为是在栈分配的
Student* GetStudentC()
{
Student stu;
Student* pstu = &stu;
return pstu;
}
//可以因为是在堆上分配的
Student* GetStudentD()
{
Student* stu = new Student();
return stu;
}