CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

Inside The C++ Object Model 中的一个问题

楼主holyfire(谁最衰啊你最衰,谁最帅啊我最帅)2001-08-06 08:49:18 在 C/C++ / C语言 提问

其中有一个  
   
  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第一章的一个疑问。

关键词

  • c++
  • 临时变量
  • 析构
  • 引用
  • ret
  • point3d
  • const
  • temp

得分解答快速导航

  • 帖主:holyfire
  • tangtao
  • movingboy

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo