由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - int &x=y;的问题
相关主题
问一个关于C++指针的问题C++编程原则的问题
请教一个pointer的问题请问C++如何初始化类时就传入一个数组参数
C++ 里push_back 一问一个windows编程问题
请教一个基础C++问题G++用-g和-O3编译运行结果竟然不一样
vector< vector > > 怎么初始化?刚看完类这一章,有些大小问题,请指教,谢谢
有关objec access path的问题【请教】mpicc 和 mpiCC编译问题
copy constructor问题。请教一个c++ reference问题
c的小问题请教一道入门小题
相关话题的讨论汇总
话题: int话题: aa话题: 问题话题: reference话题: 指针
进入Programming版参与讨论
1 (共1页)
b***i
发帖数: 3043
1
假如,p 是个指针,指向数据结构class{public int aa, int bb;};
我要int &x=p->aa;
但是,我需要判断p的值

if (p)
int &x=p->aa;
但这样,会不会造成 x不能在后续程序中使用,因为在if 内?
谢谢
f*****Q
发帖数: 1912
2
写程序不必太扣。
p**s
发帖数: 2707
3


【在 b***i 的大作中提到】
: 假如,p 是个指针,指向数据结构class{public int aa, int bb;};
: 我要int &x=p->aa;
: 但是,我需要判断p的值
: 即
: if (p)
: int &x=p->aa;
: 但这样,会不会造成 x不能在后续程序中使用,因为在if 内?
: 谢谢

t****t
发帖数: 6806
4
不是扣的问题.
他的问题是, 如果(p==0), 那x=?
正确的做法是
int& x=(p? ... : ...)
用reference的问题是, 不容易有个非法值

【在 f*****Q 的大作中提到】
: 写程序不必太扣。
b***i
发帖数: 3043
5
就是说可以先定义reference, 因为只是给编译器一个通知,以后见到x,就使用p->aa
所以,可以在if (p==0) 之后return, 或者生成新的p即可。
多谢

【在 t****t 的大作中提到】
: 不是扣的问题.
: 他的问题是, 如果(p==0), 那x=?
: 正确的做法是
: int& x=(p? ... : ...)
: 用reference的问题是, 不容易有个非法值

t****t
发帖数: 6806
6
你这样太危险了, 我几乎可以肯定这是undefined

aa

【在 b***i 的大作中提到】
: 就是说可以先定义reference, 因为只是给编译器一个通知,以后见到x,就使用p->aa
: 所以,可以在if (p==0) 之后return, 或者生成新的p即可。
: 多谢

r****t
发帖数: 10904
7
先定义 reference 是啥意思,举个例子?

aa

【在 b***i 的大作中提到】
: 就是说可以先定义reference, 因为只是给编译器一个通知,以后见到x,就使用p->aa
: 所以,可以在if (p==0) 之后return, 或者生成新的p即可。
: 多谢

t****t
发帖数: 6806
8
他那个做法不好, 不要学他

【在 r****t 的大作中提到】
: 先定义 reference 是啥意思,举个例子?
:
: aa

b***i
发帖数: 3043
9
对,不能先定义reference,在检查指针。
似乎c++如果随意改变reference的源是没有问题的,但是没有实现。是这样吗
比如
int &x=y;
....
..
if (...) return;
int &x=z;
...

【在 t****t 的大作中提到】
: 你这样太危险了, 我几乎可以肯定这是undefined
:
: aa

t****t
发帖数: 6806
10
reference一旦在初始化时被绑定, 就不能更改. 以后的赋值就对被引用的那个对象做.
如果用两次
int&x=y;
int&x=z;
就是重复定义了(这个随便想想也知道吧?)

【在 b***i 的大作中提到】
: 对,不能先定义reference,在检查指针。
: 似乎c++如果随意改变reference的源是没有问题的,但是没有实现。是这样吗
: 比如
: int &x=y;
: ....
: ..
: if (...) return;
: int &x=z;
: ...

1 (共1页)
进入Programming版参与讨论
相关主题
请教一道入门小题vector< vector > > 怎么初始化?
昨天那个算法题怎么没了?有关objec access path的问题
帮忙找个错copy constructor问题。
operator执行顺序c的小问题
问一个关于C++指针的问题C++编程原则的问题
请教一个pointer的问题请问C++如何初始化类时就传入一个数组参数
C++ 里push_back 一问一个windows编程问题
请教一个基础C++问题G++用-g和-O3编译运行结果竟然不一样
相关话题的讨论汇总
话题: int话题: aa话题: 问题话题: reference话题: 指针