1樓:匿名使用者
c++類名稱後面帶bai&符號若
宣告一du個變數則該類zhi宣告變數為引用dao變數,若類名專稱後面帶&符號放在
屬一個方法的前面,則該方法返回一個該型別的變數引用。如下面**:
class a
;a a;//宣告類變數a
a &b = a; //宣告一個引用變數b=a引用引入了物件的一個同義詞。定義引用的表示方法與定義指標相似,只是用&代替了*。引用(reference)是c++對c語言的重要擴充。
引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法:型別識別符號 &引用名=目標變數名;
2樓:匿名使用者
是引用的意思,一bai般對於類du或者結構體變數,如果直zhi接返回,dao是有些問題的,回所以我們一般
用指標或答者引用返回。c++推薦用引用返回,因為其實效率上和指標類似,又避免了指標的一些問題。你看多了就習慣了。
比如,要把這個類增加個過載運算子<<,也是這樣寫:
class screen
...然後你使用的時候可以這樣寫:class screen s; cout << s << endl;
這樣寫的好處就是你把變數當成普通的結構體或者類變數用就行,而且效率很高。
3樓:匿名使用者
你可以把&看出引bai用變數(類
du似於*和其它型別zhi搭配),就是dao像下面最簡單例子#include
#include
using namespace std;
class people
int grade;
string name;
};int main()
這段**回(現場寫答
的,沒編譯器編,應該沒問題)允許後就可以知道結果了,也不多說了。然後呢,就是用這個的好處除了顯而易見的之外,還可以提高效率(比一般的引數傳遞,如果不需要改變,加上const)。如有問題,歡迎**,我q798883827
c++中一個類名後面緊跟一個&,是什麼意思
4樓:匿名使用者
表示引用,引用和指標類似,但引用可以理解為同一個物件的不同命名,而且引用必須初始化,不能重複定義。還有引用不會分配空間
5樓:匿名使用者
代表宣告對這個類一個例項的引用,比如
#include
using namespace std;
class foo
;int a;
};int main()
上面的**是直接打的,沒放編譯器裡跑過,所以可能有錯,但是不影響理解
6樓:匿名使用者
該類的引用
也就是該類的變數的別名
7樓:匿名使用者
是引用識別符號,可以引用引數,很多時候可以取代指標,提高了程式的安全性
8樓:匿名使用者
表示引用啊這樣傳遞引數或者return的時候都不會多做一次copy的動作
c++裡面的應用符號 & 為什麼有的在變數名前面,有的在後面?有什麼區別?
9樓:匿名使用者
sales_item operator+(const sales_item&, const sales_item&);
sales_item是型別。
是+函式的宣告
可以寫成
專,屬
兩種寫法一樣的
10樓:匿名使用者
你確認sales_item是一個變數名麼。
&可以作為引用宣告符宣告一個引用。
&也是運算子,一元的&獲得指向運算元的指標,二元的&是按位與。
11樓:
變數前&為引用 int &r = i 相當於給i取了另一個名字r 。i和r都是同一個變數,只是名字不一樣而已。
變數後&為按位與 運算子 如 1&2 即1按位與2
12樓:深藍深藍
寫在左邊是取地址 右邊就不知道了......
c++函式名的前面有&或是*符號,是什麼意思?
13樓:永夜霧華
&,位與、取址、引用定義
* 與c的相同,指標定義、指定引用、乘積運算用到。
c++函式名的前面有&或是*符號,是什麼意思
14樓:匿名使用者
函式名前的&表示返回值型別是個引用,準確地說是左值引用,*則表示返回型別是指標,引用和指標的區別請自行查閱資料了。
請問c++中的引用符號「&」到底怎麼使用?
15樓:苑
c++中的引用符號「&」的使用方法是,型別識別符號 &引用名=目標變數名。
c++是c語言的繼承,它可進行過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。引用(reference)就是c++對c語言的重要擴充。引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。
16樓:西西哩的小馬甲
引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。
引用的宣告方法:型別識別符號 &引用名=目標變數名;
【例1】:int a; int &ra=a; //定義引用ra,它是變數a的引用,即別名 ;
說明:(1)&在此不是求地址運算,而是起標識作用。
(2)型別識別符號是指目標變數的型別。
(3)宣告引用時,必須同時對其進行初始化。
(4)引用宣告完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數名的別名。 ra=1; 等價於 a=1;
(5)宣告一個引用,不是新定義了一個變數,它只表示該引用名是目標變數名的一個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元。
故:對引用求地址,就是對目標變數求地址。&ra與&a相等。
(6)不能建立陣列的引用。因為陣列是一個由若干個元素所組成的集合,所以無法建立一個陣列的別名。
17樓:匿名使用者
引用是c++引入的新語言特性,是c++常用的一個重要內容之一,正確、靈活地使用引用,可以使程式簡潔、高效。
引用簡介
引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。
引用的宣告方法:型別識別符號 &引用名=目標變數名;
【例1】:int a; int &ra=a; //定義引用ra,它是變數a的引用,即別名
說明:(1)&在此不是求地址運算,而是起標識作用。
(2)型別識別符號是指目標變數的型別。
(3)宣告引用時,必須同時對其進行初始化。
(4)引用宣告完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數名的別名。
ra=1; 等價於 a=1;
(5)宣告一個引用,不是新定義了一個變數,它只表示該引用名是目標變數名的一個別名,它本身不是一種資料型別,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元。故:對引用求地址,就是對目標變數求地址。
&ra與&a相等。
(6)不能建立陣列的引用。因為陣列是一個由若干個元素所組成的集合,所以無法建立一個陣列的別名。
引用應用
1、引用作為引數
引用的一個重要作用就是作為函式的引數。以前的c語言中函式引數傳遞是值傳遞,如果有大塊資料作為引數傳遞的時候,採用的方案往往是指標,因為這樣可以避免將整塊資料全部壓棧,可以提高程式的效率。但是現在(c++中)又增加了一種同樣有效率的選擇(在某些特殊情況下又是必須的選擇),就是引用。
【例2】:
此處函式的形參p1, p2都是引用
為在程式中呼叫該函式,則相應的主調函式的呼叫點處,直接以變數作為實參進行呼叫即可,而不需要實參變數有任何的特殊要求。如:對應上面定義的swap函式,相應的主調函式可寫為:
main( )
float &fn2(float r) //定義函式fn2,它以引用方式返回函式值
void main() //主函式
} (5)在另外的一些操作符中,卻千萬不能返回引用:+-*/ 四則運算子。它們不能返回引用,effective c++[1]的item23詳細的討論了這個問題。
主要原因是這四個操作符沒有side effect,因此,它們必須構造一個物件作為返回值,可選的方案包括:返回一個物件、返回一個區域性變數的引用,返回一個new分配的物件的引用、返回一個靜態物件引用。根據前面提到的引用作為返回值的三個規則,第2、3兩個方案都被否決了。
靜態物件的引用又因為((a+b) == (c+d))會永遠為true而導致錯誤。所以可選的只剩下返回一個物件了。
4、引用和多型
引用是除指標外另一個可以產生多型效果的手段。這意味著,一個基類的引用可以指向它的派生類例項。
【例7】:
class a;
class b:public a;
b b;
a &ref = b; // 用派生類物件初始化基類物件的引用
ref 只能用來訪問派生類物件中從基類繼承下來的成員,是基類引用指向派生類。如果a類中定義有虛擬函式,並且在b類中重寫了這個虛擬函式,就可以通過ref產生多型效果。
引用總結
(1)在引用的使用中,單純給某個變數取個別名是毫無意義的,引用的目的主要用於在函式引數傳遞中,解決大塊資料或物件的傳遞效率和空間不如意的問題。
(2)用引用傳遞函式的引數,能保證引數傳遞中不產生副本,提高傳遞的效率,且通過const的使用,保證了引用傳遞的安全性。
(3)引用與指標的區別是,指標通過某個指標變數指向一個物件後,對它所指向的變數間接操作。程式中使用指標,程式的可讀性差;而引用本身就是目標變數的別名,對引用的操作就是對目標變數的操作。
(4)使用引用的時機。流操作符《和》、賦值操作符=的返回值、拷貝建構函式的引數、賦值操作符=的引數、其它情況都推薦使用引用。
18樓:匿名使用者
int x=5;
int &p=x; // p指向了x用於函式的傳址引數, int test(int &m, int n)
m是傳址,n是傳值
19樓:匿名使用者
取地址符,比如有個變數a。&a就是說a在記憶體的地址
c++中的::符號的作用
20樓:祜風
1、::是c++裡的「作用域運算子」。作用域符號::的前面一般是類名稱,後面一般是該類的成員名稱。
2、其作用主要有三點:
(1)標識作用域的級別;
:: 用在全域性函式或變數前,表示是全域性函式或變數(2)標識成員屬於哪個類
a,b表示兩個類,在a,b中都有成員member。那麼a::member就表示類a中的成員member
b::member就表示類b中的成員member(3) 限定成員的作用範圍
應用於名稱空間namespace定義的實體後面。
21樓:匿名使用者
::域作用符,第一個::表示listen用的全域性函,這麼用是因為在類裡或某個名稱空間裡可能存在著和這個全域性函式相同名的函式,如果不用::
,編譯器會預設呼叫類裡或某個名稱空間裡的函式,加上它則表示呼叫的是那個全域性的listen。
c中符號是什麼意思,C中符號什麼意思,舉一個例子
在c c 語言中沒有的吧。在js中是有的,含義是 嚴格相等。比如var a 3 var b 3 a b 返回 true a b 返回 false 因為a,b的型別不一樣。是一個邏輯運算子,它的目的是判斷 兩邊的表示式是否相等。如果相等,返回值為1,如果不等,返回值為0。兩邊表示式一般要是可以相互轉化...
c中是什麼意思C中是什麼意思
是賦值運算子,a b時,等價於 a a b,類似的有a b,等價於a a b a b等價於a a b a b等價於a a b a b等價於a a b 計算時先算等號右邊表示式的值 相當於b 例如 a 5 等價於a a 5 x y 7 等價於x x y 7 r p 等價於r r p 擴充套件資料 注意...
c語言符號意思,C語言中的符號 和 是什麼意思?
c語言運算子號的種類 1 算術運算子 用於各類數值運算。包括加 減 乘 除 求餘 或稱模運算,自增 自減 共七種。2.關係運算子 用於比較運算。包括大於 小於 等於 大於等於 小於等於 和不等於 六種。3.邏輯運算子 用於邏輯運算。包括與 或 非 三種。4.位操作運算子 參與運算的量,按二進位制位進...