这是我的示例代码

    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并且对象是临时对象,则可能会延长引用的生存期,但是肯定不会减少生存期)

10-07 20:22