C语言中临时对象是如何被创建和管理的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计812个文字,预计阅读时间需要4分钟。
C++中临时对象(临时对象)又称无名对象。临时对象主要出现在以下场景中:
1.创建一个没有命名的非堆(non-heap)对象,也就是无名对象时,此时会自动产生临时对象。例如:Integer inte=Integer(5);
2.在表达式中,如临时对象的创建和销毁;
3.函数调用时,返回值是临时对象时;
4.使用new创建对象时,如果对象构造失败,会创建一个临时对象来存储错误信息。
C++中临时对象(Temporary Object)又称无名对象。临时对象主要出现在如下场景。
1.建立一个没有命名的非堆(non-heap)对象,也就是无名对象时,会产生临时对象。
Integer inte= Integer(5); //用无名临时对象初始化一个对象
2.构造函数作为隐式类型转换函数时,会创建临时对象,用作实参传递给函数。
例:
class Integer { public: Integer(int i):m_val(i){} ~Integer(){} private: int m_val; }; void testFunc(Integer itgr) { // do something }
那么语句:
int i = 10; testFunc(i);
会产生一个临时对象,作为实参传递到testFunc函数中。
3.函数返回一个对象时,会产生临时对象。以返回的对象最作为拷贝构造函数的实参构造一个临时对象。
本文共计812个文字,预计阅读时间需要4分钟。
C++中临时对象(临时对象)又称无名对象。临时对象主要出现在以下场景中:
1.创建一个没有命名的非堆(non-heap)对象,也就是无名对象时,此时会自动产生临时对象。例如:Integer inte=Integer(5);
2.在表达式中,如临时对象的创建和销毁;
3.函数调用时,返回值是临时对象时;
4.使用new创建对象时,如果对象构造失败,会创建一个临时对象来存储错误信息。
C++中临时对象(Temporary Object)又称无名对象。临时对象主要出现在如下场景。
1.建立一个没有命名的非堆(non-heap)对象,也就是无名对象时,会产生临时对象。
Integer inte= Integer(5); //用无名临时对象初始化一个对象
2.构造函数作为隐式类型转换函数时,会创建临时对象,用作实参传递给函数。
例:
class Integer { public: Integer(int i):m_val(i){} ~Integer(){} private: int m_val; }; void testFunc(Integer itgr) { // do something }
那么语句:
int i = 10; testFunc(i);
会产生一个临时对象,作为实参传递到testFunc函数中。
3.函数返回一个对象时,会产生临时对象。以返回的对象最作为拷贝构造函数的实参构造一个临时对象。

