没有合适的资源?快使用搜索试试~ 我知道了~
C++中存在临时对象,却很少有人发现,本文档详细介绍了临时对象的产生,存在以及应对方法,很有帮助
资源推荐
资源详情
资源评论
C++中真正的临时对象是看不见的,它们不出现在你的源代码中,临时对象的产生在如下几个
时刻:
1.用构造函数作为隐式类型转换函数时,会创建临时对象。
例:
class Integer
{
public:
Integer(int i)
:m_val(i)
{}
~Integer()
{}
private:
intm_val;
};
void Calculate(Integer itgr)
{
// do something
}
那么语句:55inti = 10;
Calculate(i);
会产生一个临时对象,作为实参传递到 Calculate函数中。
2.建立一个没有命名的非堆(non-heap)对象,也就是无名对象时,会产生临时对象。
如:
Integer& iref = Integer(5);//用无名临时对象初始化一个引用,等价于
//Integer iref(5);
Integeritgr = Integer(5);//用一个无名临时对象拷贝构造另一个对象
按理说,C++应先构造一个无名的临时对象,再用它来拷贝构造 itgr,由于
资源评论
伟大的宇航猿
- 粉丝: 9
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功