这是我的示例代码
class king
{
public:
king(int q)
:queen(q)
{
}
~king()
{
cout << "king's destructor." << endl;
}
void operator= (const king &k)
{
cout << "king's copy constructor." << endl;
queen = k.queen;
}
private:
int queen;
};
void refFunc0(king &k)
{
king &kk = k;
}
void refFunc1(king &k)
{
king kk = k;
}
void main()
{
int qqq0 = 55;
king kkk0(qqq0);
refFunc0(kkk0);
cout << qqq0 << endl;
int qqq1 = 66;
king kkk1(qqq1);
refFunc1(kkk1);
cout << qqq1 << endl;
cin.get();
}
谁能帮助解释以上代码中发生的情况?
我的意思是,如果我将引用传递给函数,则引用变量调用析构函数会销毁作为引用传递给函数的原始变量吗?
最佳答案
引用不是对象,它们只是引用对象。将引用绑定到对象不会影响对象的生存期(如果引用为const
并且对象是临时对象,则可能会延长引用的生存期,但是肯定不会减少生存期)