引用和传值 问题,为啥传值多出来delete
// Person 类
class CPersion
{
public:
CPersion(void);
~CPersion(void);
};
CPersion::CPersion(void)
{
cout<<"creat a person"<<endl;
}
CPersion::~CPersion(void)
{
cout<<"delete a person"<<endl;
}
// Student 类
class CStudent : public CPersion
{
public:
CStudent(void);
~CStudent(void);
};
CStudent::CStudent(void)
{
cout<<"creat a student"<<endl;
}
CStudent::~CStudent(void)
{
cout<<"delete a student"<<endl;
}
// main func
bool IsAStudent(CStudent s)
{
return false;
}
void main()
{
CStudent s = CStudent();
IsAStudent(s);
}
使用VS2010,为什么上面输出的是
creat a person
creat a student
delete a student
delete a person
delete a student
delete a person
而如果传的是引用
bool IsAStudent(CStudent& s)
{
return false;
}
输出的是
creat a person
creat a student
delete a student
delete a person
问题是为什么多出来
delete a student
delete a person
谁能帮解释一下???
[解决办法]