ı(һ)
þڡô(pass-by-reference)
˴ i j ֱmainе x y仰˵i x ָ x ָ룬Ҳ x Ŀ x i κθıͬӰ x֮Ȼ
OKΪһԱ֪áڣһͬ ǶȣܻͿǾʵֵġ͵£ x i x ĻַǣԱд i++ ʱ x Ĵ롣ϸ˵Ѱ x ĵַλûбı䡣C ԱΪ C İָ봫ݣֻǾ䷨ͬ (1) & ӵƵ˱ߴ(2)*s仰˵C ԱὫ i Ϊ (*p) p ָ x ָ루磬ԶؽDZڵָãi++ıΪ (*p)++i = 7 Զת *p = 7
Ҫ벻ҪÿΪָһָ룬ʹþûµĵַʵֵġþǶָָ룬ҲǶĿǶ
[ Top | Bottom | Previous section | Next section ]
ıõġָʾָĶ
ס: þָʾԵıõֵʱҲıָʾֵԱдߵл˵һֵԳڸֵߣ
[ Top | Bottom | Previous section | Next section ]
ζŸúÿԳڸֵߡ
ЩŹ֡磬û˻Ϊʽ f() = 7 塣Ȼ a һ Array ࣬˻Ϊ a[i] = 7 壬ʹ a[i] ʵһõαװ µ Array Array::operator[](int)
[ Top | Bottom | Previous section | Next section ]
Щĵã˱Ϊ
һִе object.method1()ضǶã磬method1() return *this һЩǹҰѷصĶΪobjectBȻobjectBΪmethod2()this
õĵطiostream⡣磬cout << x << y ִΪ cout << xһcout.ĺ
ȻʹõĽ٣ȻҪյNamed Parameter Idiomʹ÷
[ Top | Bottom | Previous section | Next section ]
С
ָʾ롣
ָ벻ͬһúͶٱָñһûбʶ; ͼõĵַʱ㽫ĵָʾĵַסþָʾ
ij˵ int* const p constָ const int* p ָָжôƣ벻Ҫúָ룻ȫͬ
[ Top | Bottom | Previous section | Next section ]
ʹãʱʹָ롣
㲻Ҫָ(reseating)ʱһָ뱻ѡáͨζĹнӿʱáóֵĵͳǶı棬ָڶڲ
ǺIJֵҪһٽ硱ʱʱͨ÷/ȡһָ룬ʹ NULL ָʹ(ӦǶıDZõ NULL ָ)
ע⣺ڵߵĴ봦ṩĵ壬Դͳ C ԱʱϲáȻһЩ C++ ܿʶϢصһʽĶкġͬԱӦҪд룬ǻ
[ Top | Bottom | Previous section | Next section ]
һָȡһķһļָ롣ǣģġ
ʵеijЩõġ磬ʱܲþʾܲȷǷһָûָָָָõָͱʶһַԱܹԹϣhash-tableݽṹݿһЩļѯֻ֪ҪһЩΨһʶĶȡôЩͱΪ
ˣĿҪôΨһıʶ/ѯһFredָĶĻҪһFredЩ롣һܱΪ֪IJѯеļkeyʹõַ磬std::map<std::string,Fred>
std::map<std::string,Fred*>еļһΪе磬Fred* array = new Fred[maxNumFreds]һ Fred*һЩ
ѧָ߳룬ʵʹδʼָеײķա磬FredҪƶô죿FredԱȫɾʱλ֪FredҪʱģĴӴ̻ô죿ȵȡЩʱĴһӲλá磬Fred**ָFred*ָԱ֤ᱻƶFredҪƶʱֻҪָFred*ָͿˡһΪȻڱطѯFredĶָFredָ룩
صǵDz֪Ҫϸʱʹþ
ʹþһʱҪѾɵĶʱʱmagic cookieҲһһmagic cookieΨһʶλʵFredѾɵĶԭʹþϸڻʾıʱӦС˵һڱвѯַΪвѯʱǿɲ´Ĵ롣
ϸڻʾıʱάΪ˵Ķдף˳װСೣoperator-> operator*ȻЧָ룬ôܿҲָ룩
[ Top | Bottom | Previous section | Next section ]
E-mail the author
[ C++ FAQ Lite
| Table of contents
| Subject index
| About the author
| ©
| Download your own copy ]
Revised Apr 8, 2001