由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 请教一个基础C++问题 (转载)
相关主题
gcc 4.5 会支持 go。。。求 Lahey fortran compiler
GCC 4.5 + C++0x 发布了vmware unity view很神奇阿
关于 gcc 和 g++ 的问题 (转载)Damn I am so smart!
弱问编译器是executable吗?OpenOffice without X
about compiling new glibc/gcc in fc14也说说谭浩强(转载) (转载)
Mono Wins Product of the Year AwardThunderBird的使用问题
怎样创造一个 segv (转载)how to begin kernel development step by step?
彻底晕了。read and write NTFS
相关话题的讨论汇总
话题: const话题: reference话题: int话题: c++话题: std
进入Linux版参与讨论
1 (共1页)
J*******g
发帖数: 381
1
【 以下文字转载自 Programming 讨论区 】
发信人: JiayiWang (noname), 信区: Programming
标 题: 请教一个基础C++问题
发信站: BBS 未名空间站 (Mon Sep 7 15:12:40 2009, 美东)
int i = 42;
std::cin >> i;
const int &r1 = 42;
const int &r2 = r1+i;
以上语句是可以编译通过的,运行也没问题。 我的问题是,C++规定,const的
reference只能指向const变量,const变
量是compile的时候就初始化的。 但是在
const int &r2 = r1+i;
里面,i是runtime由user输入的,那么定义成const int &r2的reference为什么没有编
译报错呢?
N****w
发帖数: 21578
2

【 以下文字转载自 Programming 讨论区 】
发信人: JiayiWang (noname), 信区: Programming
标 题: 请教一个基础C++问题
发信站: BBS 未名空间站 (Mon Sep 7 15:12:40 2009, 美东)
int i = 42;
std::cin >> i;
const int &r1 = 42;
const int &r2 = r1+i;
以上语句是可以编译通过的,运行也没问题。 我的问题是,C++规定,const的
reference只能指向const变量,const变
量是compile的时候就初始化的。 但是在
>>>>no... const variable dosn't mean it's constant bah.
const int &r2 = r1+i;
里面,i是runtime由user输入的,那么定义成const int &r2的reference为什么没有编
译报错呢?

【在 J*******g 的大作中提到】
: 【 以下文字转载自 Programming 讨论区 】
: 发信人: JiayiWang (noname), 信区: Programming
: 标 题: 请教一个基础C++问题
: 发信站: BBS 未名空间站 (Mon Sep 7 15:12:40 2009, 美东)
: int i = 42;
: std::cin >> i;
: const int &r1 = 42;
: const int &r2 = r1+i;
: 以上语句是可以编译通过的,运行也没问题。 我的问题是,C++规定,const的
: reference只能指向const变量,const变

J*******g
发帖数: 381
3
Yes it does.

【在 N****w 的大作中提到】
:
: 【 以下文字转载自 Programming 讨论区 】
: 发信人: JiayiWang (noname), 信区: Programming
: 标 题: 请教一个基础C++问题
: 发信站: BBS 未名空间站 (Mon Sep 7 15:12:40 2009, 美东)
: int i = 42;
: std::cin >> i;
: const int &r1 = 42;
: const int &r2 = r1+i;
: 以上语句是可以编译通过的,运行也没问题。 我的问题是,C++规定,const的

J********a
发帖数: 5208
4
结论是C++别太把const当回事,别人想cast 就cast,跟放屁一样没区别

【在 N****w 的大作中提到】
:
: 【 以下文字转载自 Programming 讨论区 】
: 发信人: JiayiWang (noname), 信区: Programming
: 标 题: 请教一个基础C++问题
: 发信站: BBS 未名空间站 (Mon Sep 7 15:12:40 2009, 美东)
: int i = 42;
: std::cin >> i;
: const int &r1 = 42;
: const int &r2 = r1+i;
: 以上语句是可以编译通过的,运行也没问题。 我的问题是,C++规定,const的

N****w
发帖数: 21578
5
const pointer 就不是 const
可以指向任何一个变量,只要不修改变量
const reference 应该跟 pointer 类似

【在 J*******g 的大作中提到】
: Yes it does.
J*******g
发帖数: 381
6
const reference is not the same as const pointer. You can change the
pointers, but you cannot change
reference once it has been initialized. For const reference, you not only
cannot change the reference, you
can't change what the reference points to either.

【在 N****w 的大作中提到】
: const pointer 就不是 const
: 可以指向任何一个变量,只要不修改变量
: const reference 应该跟 pointer 类似

m*****n
发帖数: 266
7
If you can speak English why didn't you speak Chinese?

only

【在 J*******g 的大作中提到】
: const reference is not the same as const pointer. You can change the
: pointers, but you cannot change
: reference once it has been initialized. For const reference, you not only
: cannot change the reference, you
: can't change what the reference points to either.

u*********r
发帖数: 2735
8
this statement is wrong: "const的reference只能指向const变量"
const reference only means the reference itself can not be used to modify
what it refers to. the target does not have to be const.
try this:
int i = 0;
const int& x = i;
std::cout << x << std::endl;
i = 4;
std::cout << x << std::endl;
// x = 6; // compiling error
1 (共1页)
进入Linux版参与讨论
相关主题
read and write NTFSabout compiling new glibc/gcc in fc14
Gnome 2.28 beta1 。。。Mono Wins Product of the Year Award
GCC在哪里用?怎样创造一个 segv (转载)
Makefile中怎么处理没有扩展名的文件?彻底晕了。
gcc 4.5 会支持 go。。。求 Lahey fortran compiler
GCC 4.5 + C++0x 发布了vmware unity view很神奇阿
关于 gcc 和 g++ 的问题 (转载)Damn I am so smart!
弱问编译器是executable吗?OpenOffice without X
相关话题的讨论汇总
话题: const话题: reference话题: int话题: c++话题: std