说明:
  1、声明引用时,C语言将引用声明的是指针常量。(为啥要初始化引用原因)
  2、引用使用,C语言隐藏了对常指针自动间接引用,让我们完全不用了解指针
  3、初始化引用时,C语言隐藏了对变量的取地址符&操作,让我们感觉是在直接给变量起别名
  应用的剖析到此结束了,下面我们来说说匿名对象吧。
  什么是匿名对象?
  匿名对象可以理解为是一个临时对象,一般系统自动生成的,如你的函数返回一个对象,这个对象在返回时会生成一个临时对象。
  匿名对象的生命周期(很重要!!!)
class Cat
{
public:
Cat()
{
cout<<"Cat类 无参构造函数"<<endl;
}
Cat(Cat& obj)
{
cout<<"Cat类 拷贝构造函数"<<endl;
}
~Cat()
{
cout<<"Cat类 析构函数 "<<endl;
}
};
void playStage()
//一个舞台,展示对象的生命周期
{
Cat();
/*在执行此代码时,利用无参构造函数生成了一个匿名Cat类对象;执行完此行代码,
因为外部没有接此匿名对象的变量,此匿名又被析构了*/
Cat cc = Cat();
/*在执行此代码时,利用无参构造函数生成了一个匿名Cat类对象;然后将此匿名变
成了cc这个实例对象,此匿名对象没有被析构。*/
cout<<"cc 对象好没有被析构"<<endl;
}
int main()
{
playStage();
system("pause");
return 0;
}
  输出:
  Cat类 无参构造函数
  Cat类 析构函数
  Cat类 无参构造函数
  cc 对象好没有被析构
  Cat类 析构函数
  说明:
  1、在执行playStage( )函数中的Cat( )时,生成了一个匿名对象,执行完Cat( )代码后,此匿名对象此消失。这是匿名对象的生命周期。
  2、在执行playStage( )函数中Cat cc = Cat();时,首先生成了一个匿名对象,因为外部有cc对象在等待被实例化,然后将此匿名对象变为了cc对象,其生命周期变成了cc对象的生命周期。
  总结:
  如果生成的匿名对象在外部有对象等待被其实例化,此匿名对象的生命周期变成了外部对象的生命周期;如果生成的匿名对象在外面没有对象等待被其实例化,此匿名对象将会生成之后,立马被析构。
  后希望能对大家有帮助,沙米才疏学浅,有什么错误请留言指正,谢谢大家。