和力 吳麗賢
摘要:為了澄清C++中引用的本質,通過反匯編手段揭示了引用的底層實現(xiàn)機與指針實質是一樣的,也是屬于間接訪問,并對實體名、指針和引用三種訪問方式進行了比較。
關鍵詞:C++;引用;底層實現(xiàn)機制;反匯編
中圖分類號:TP312文獻標識碼:A文章編號:1009-3044(2012)16-3854-02
Study and Analysis on Underlying Mechanism of Reference in C++
HE Li, WU Li-xian
(Department of Mathematics and Information Technology, Hanshan TeachersCollege, Chaozhou 521041, China)
Abstract: In order to clarify the Essence of reference in C++, the underlying mechanism of reference in C++ is revealed by means of disas sembling. References and pointers are indirect access. Entity name, pointer and references-three access methods are compared.
Key words: C++; reference; underlying mechanism; disassembling
C++語言中訪問實體(包括變量和類對象)可通過實體名(包括變量名和對象名)、指針和引用三種方式。通過學習,學生一般能較好地理解前兩種訪問方式,但由于很多文獻和教材只是簡單地把引用看作是實體的別名,對于它的底層實現(xiàn)機制和工作原理介紹較為模糊,所以學生對于引用的本質,以及它與指針的異同大都顯得一知半解。下面以Visual C++為例,對于引用的底層實現(xiàn)機制進行深入分析,以揭示引用的本質。
在C++程序設計語言的教學過程中,很多師生對于引用的實現(xiàn)機制、它的本質,以及它與指針的區(qū)別與聯(lián)系感到困惑。該文通過反匯編手段揭示了引用的底層實現(xiàn)機與指針一樣的,也是屬于間接訪問,并通過實例驗證了我們的分析。引用具有指針一樣的高效與便捷性,使用上又比指針安全、簡潔。正是因為引用的這些特點,在隨后出現(xiàn)的Java和C#語言中引用已取代指針在CC++中原有的地位,而且它的功能也得到了進一步的豐富。
[1]錢能. C++程序設計教程[M]. 2版.北京:清華大學出版社, 2005.
[2] Echel B, Allison C. Thinking in C++ (Second Edition), Volume 1: Introduction to Standard C++[M]. Upper Saddle River: Prentice Hall, 2000.
[3] Echel B, Allison C. Thinking in C++, Volume 2:Practical Programming[M]. Upper Saddle River: Prentice Hall, 2004.
[4]胡巧多.面向對象程序設計C++語言引用機制的剖析[J].長春工程學院學報, 2003,4(1):60-62.
[5]張鴻. C++面向對象程序設計中引用的使用[J].河南教育學院學報, 2005,14(2):59-61.