程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++引用基本概念詳解

C++引用基本概念詳解

編輯:C++入門知識

C++編程語言中有很多應用方法和C語言有相同之處。那麼作為C語言的升級版本,它又有哪些不同之處呢?首先讓我們從C++引用的基本概念來解讀這一問題,希望能夠幫助大家輕松掌握這一語言的特點。

  • C++調用C鏈接庫具體應用技巧講解
  • C++ typedef使用方法總結
  • C++存儲區域基礎概念詳解
  • C++模板常用使用方法介紹
  • C++全局函數應用指南

一、C++引用的概念

引用引入了對象的一個同義詞。定義引用的表示方法與定義指針相似,只是用&代替了*。

例如: Point pt1(10,10);

Point &pt2=pt1; 定義了pt2為pt1的引用。通過這樣的定義,pt1和pt2表示同一對象。

需要特別強調的是C++引用並不產生對象的副本,僅僅是對象的同義詞。因此,當下面的語句執行後:

pt1.offset2,2);

pt1和pt2都具有12,12)的值。

C++引用必須在定義時馬上被初始化,因為它必須是某個東西的同義詞。你不能先定義一個引用後才初始化它。例如下面語句是非法的:

  1. Point &pt3;  
  2. pt3=pt1; 

那麼既然引用只是某個東西的同義詞,它有什麼用途呢?

下面討論C++引用的兩個主要用途:作為函數參數以及從函數中返回左值。

二、引用參數

傳遞可變參數

傳統的c中,函數在調用時參數是通過值來傳遞的,這就是說函數的參數不具備返回值的能力。

所以在傳統的c中,如果需要函數的參數具有返回值的能力,往往是通過指針來實現的。比如,實現

兩整數變量值交換的c程序如下:

  1. void swapint(int *a,int *b)  
  2. {  
  3. int temp;  
  4. temp=*a;  
  5. *a=*b;  
  6. *b=temp;  

使用C++引用機制後,以上程序的C++版本為:

  1. void swapint(int &a,int &b)  
  2. {  
  3. int temp;  
  4. temp=a;  
  5. a=b;  
  6. b=temp;  

調用該函數的C++方法為:swapintx,y); C++自動把x,y的地址作為參數傳遞給swapint函數。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved