深圳C++培训
达内深圳龙华中心

139-2227-5185

热门课程

C++什么是匿名对象_深圳达内C++培训

  • 时间:2017-07-05
  • 发布:深圳达内
  • 来源:达内新闻

C++什么是匿名对象

匿名对象可以理解为是一个临时对象,一般系统自动生成的,如你的函数返回一个对象,这个对象在返回时会生成一个临时对象。

匿名对象的生命周期(很重要!!!)

class Cat

{public:

Cat()

{cout<<"Cat类 无参构造函数"<

}

Cat(Cat& obj)

{cout<<"Cat类 拷贝构造函数"<

}

~Cat()

{cout<<"Cat类 析构函数 "<

}

};

void playStage() //一个舞台,展示对象的生命周期{Cat(); /*在执行此代码时,利用无参构造函数生成了一个匿名Cat类对象;执行完此行代码,因为外部没有接此匿名对象的变量,此匿名又被析构了*/Cat cc = Cat(); /*在执行此代码时,利用无参构造函数生成了一个匿名Cat类对象;然后将此匿名变成了cc这个实例对象,此匿名对象没有被析构。*/

cout<<"cc 对象好没有被析构"<

}

int main()

{playStage();

system("pause");

return 0;

}

输出:

Cat类 无参构造函数

Cat类 析构函数

Cat类 无参构造函数

cc 对象好没有被析构

Cat类 析构函数

说明:

1、在执行playStage( )函数中的Cat( )时,生成了一个匿名对象,执行完Cat( )代码后,此匿名对象就此消失。这就是匿名对象的生命周期。

2、在执行playStage( )函数中Cat cc =

Cat();时,首先生成了一个匿名对象,因为外部有cc对象在等待被实例化,然后将此匿名对象变为了cc对象,其生命周期就变成了cc对象的生命周期。

总结:

如果生成的匿名对象在外部有对象等待被其实例化,此匿名对象的生命周期就变成了外部对象的生命周期;如果生成的匿名对象在外面没有对象等待被其实例化,此匿名对象将会生成之后,立马被析构。


好了,今天就给大家讲这么多吧,喜欢我的内容可以关注或者分享(微信公众平台:tarenasz)选择深圳C++培训,不再孤军奋战,轻轻松松做IT白领。深圳达内培训带领有明确目标的学子迈向成功之路!






上一篇:深圳C++培训:运行期多态优点_深圳达内C++培训
下一篇:深圳C++培训班教你duilib绘制边框_深圳达内C++培训

深圳C++培训机构:C++面试中经常会被问到的面试知识点

深圳C++培训班:不要忽视C语言

深圳C++培训:C++ 网络编程初学者的开源项目

快速掌握C语言函数,C语言函数的定义和函数调用过程

选择城市和中心
贵州省

广西省

海南省