摘引有没有生命周期的概念!

引用有没有生命周期的概念!!
不知道怎么纠结这个问题!比如下面这段代码:
C/C++ code


#include <iostream>
using namespace std;
class A{
public:
    ~A(){
        cout<<"Destructor"<<endl;
    }
};
void fun(A & ra){
}
int main(){    
    A a;
    fun(a);
    return 0;
}


如果引用有生命周期的话,在fun函数中,作为区域变量的ra在生命周期结束也就是函数调用结束的时候会调用类A的析构函数,而在主函数main中,在主函数结束的时候a也会调用其析构函数,由于引用ra和a指向的是同一段内存,就会造成内存的多次释放,但是貌似又没有!怎么解释??

------解决方案--------------------
1.引用不是对象, 生命周期是属于对象的, 引用没有生命周期.

2.对象的析构函数的调用跟它的引用没有关系
------解决方案--------------------
第2点还是要补充一下,

1.用引用来调用它的析构函数.

2.当常引用绑定到临时对象时,临时对象的生命周期被延长.
------解决方案--------------------
可以先干掉它obj.~obj();然后又初始化它obj.obj();