关于const引用

SeaDragonH 2006-04-17 10:47:56
C++Primer 上说const引用可以用不同类型的对象初始化,但为什么这个程序会提示出错呢?难道我理解错了!(我用的是VC++6.0)
#include<iostream>
using namespace std;
int main()
{
double dval=3.14159;
const int &ir=dval;
return 0;
}
error C2166: l-value specifies const object
...全文
95 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
setve 2006-04-18
没有问题啊,先清除一下重新编译一下试试看!常数引用的时候本来就要初始化的,那不是赋值。不知道会不会是因为数据类型不对,前面声明的变量是双精度,后面的引用是整型
  • 打赏
  • 举报
回复
SeaDragonH 2006-04-18
谢谢大家关注!
  • 打赏
  • 举报
回复
braveconf 2006-04-17
看看是不是写错了。
  • 打赏
  • 举报
回复
richard_2010 2006-04-17
你的编译器的问题
我同样是VC6.0,没有错误
  • 打赏
  • 举报
回复
xcm83 2006-04-17
C2166就应该是对CONST 赋值的错误
  • 打赏
  • 举报
回复
tidyduck 2006-04-17
试了一下,没错啊。
我的是vc7
  • 打赏
  • 举报
回复
xcm83 2006-04-17
错了 应该是

A::A():ir(3.14159)
{
...
}
  • 打赏
  • 举报
回复
xcm83 2006-04-17
已经声明ir为const,就不能再对它赋值了,如果需要应该将赋值放在构造函数的成员初始化表中进行如:

A::A();ir(3.14159)
{
...
}
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2006-04-17 10:47
社区公告
暂无公告