Inside The C++ Object Model 中的一个问题
其中有一个
const Point3D<float> &ret = 0;
他说是产生了一个临时变量
Point3d<float> temp( float(0) );
const Point3D<float> &ret = temp;
但是这个引用既然指向临时变量
一旦临时变量析构,ret指向不就是非法的了吗,而且引用又不是指针
这里真是很难理解啊
这里的过程究竟是怎样的呢
临时变量怎么处理?什么时候析构?
问题点数:20、回复次数:3Top
1 楼tangtao(skywalker)回复于 2001-08-06 09:39:38 得分 10
我曾在cuj上看到一篇文章,其中有一段话大意是说:
一个用临时变量初始化的const reference 将会使临时变量的生存周期与自身的相等,编译器语言规则将强制保证这一点。
换句话,const reference生存期结束时,临时变量才被析构。这是c++的语言标准。Top
2 楼magicblue(小飞侠)回复于 2001-08-06 10:59:41 得分 0
那么不是const的又怎么样呢?
这是我以前的一个帖子:
http://www.csdn.net/expert/topic/173/173451.shtm
Top
3 楼movingboy(movingboy)回复于 2001-08-06 12:57:42 得分 10
实际上temp与ret具有同样的生命周期嘛。所以你不要担心一个被析构而另一个出现错误引用的问题。Top
相关问题
- another question in "Inside C++ Object Model"2
- 《inside the c++ object model》问题!
- <<Inside The C++ Object Model>> 问题?
- 关于inside c++ object model 上的例子
- 阅读<Inside The C++ Object Model>的疑问(1)
- <<INSIDE C++ OBJECT MODEL>>可否有下的???
- 求inside the C++ object model 书,50分。
- 谁有Inside the C++ Object Model中文版啊?
- 谁能告诉我哪里有inside C++ object model下载?
- Inside The C++ Object Model第一章的一个疑问。




