C 中類物件前加和不加有什麼區別

2021-05-05 23:28:29 字數 3872 閱讀 9164

1樓:

加&表示引用。引用的意思就是起個別名,但還在用原來的變數。

int a=10;

int &b=a; //b是a的引用,加後對b操作就是對a操作!

b=20;

cout<

不加就不是引用。

c++類的成員函式前加&什麼意思

2樓:匿名使用者

這個和函式引數加位址符的作用是一樣的,用於返值返回的是引用而不是賦值。

也就是說,該函式返值會通過位址傳送的方式給到函式呼叫者要求的返回值,這樣可以節省物件賦值造成的記憶體浪費,通常用於返值是大型物件(而不是簡單變數型別)的時候。

比如你有個class t,而這個函式的返值是return t; 加上位址符返值後,返回t變數的位址,將位址傳遞給接收返值的變數,而不是新建乙個類t,呼叫類的複製函式建立乙個新類。

3樓:it孤鶩

& 就是引用的意思

引用就是某一變數(目標)的乙個別名,對引用的操作與對變數直接操作完全一樣。

c++中建立物件的時候加括號和不加括號的區別

4樓:匿名使用者

養成建立物件例項的bai時候加括號的習慣du1:如果是zhi乙個內建物件dao(比如int),在new的時候加括專

號會自動初始屬化(記憶體置0)

2:如果是乙個類或者有建構函式的物件(比如有建構函式的結構體),那加不加沒太大區別,加括號,會顯式呼叫沒引數的建構函式,不加括號,呼叫預設建構函式。

c++引數前加&是什麼意思?

5樓:匿名使用者

&是引用符運算子起作用就是可以返回當前被引用元素的值舉個簡單例子相信樓主很快就會明白:

class a

void getelem(int &e)//此處若沒有&執行就不能顯示e的值因為e的作用域只是當前函式&使他可以被返回

};int main()

說通俗點就是用來讓函式的引數被賦予實際的值,而不是在函式執行完後引數就沒作用了,這個在學資料結構**用的很多謝謝~

6樓:孫五剛

返回對那個型別的乙個引

用。以你的例子來說,就是返回對ostream型別的乙個引用。目的是可以連續呼叫。比如在類a裡過載了《這個符號,返回型別為ostream&,那麼就可以連續輸出類a的兩個物件:

a a,b;

cout<

若去掉&符號,則只能這樣寫:

cout<

cout<

要麻煩很多。

7樓:

&在變數前表示的是變數在記憶體中的位址,一般單獨使用沒有特定的意義,&和變數做為函式的引數一起使用,表示傳遞給該函式的是變數位址,而不是變數值。

8樓:匿名使用者

1.取引數的位址

2.表引用,以用來傳遞引數

c++中,無類名物件與匿名類的區別?

9樓:

有類名的話可以在其他地方定義更多物件,無類名的就只能用stud1和stud2兩個物件了

c++中定義類的物件:用new和不用new有何區別

10樓:匿名使用者

不用new,定義在棧上來

。出了作用域自

就會自動失效。但bai是棧的空間有限,du預設只有1m。

使用zhinew,定義在堆(自由儲存區

dao)上,容量大小只受物理記憶體限制,在delete之前不會失效。如果不需要這個物件,必須使用delete釋放。

c++標頭檔案加h和不加h有什麼區別??

11樓:影者東昇

iostream是c++的標頭檔案,iostream.h是c的標頭檔案,即標準的c++標頭檔案沒有.h副檔名,將以前的c的標頭檔案轉化為c++的標頭檔案後,有時加上c的字首表示來自於c,例如cmath就是由math.

h變來的。 iostream.h裡面定義的所有類以及物件都是在全域性空間裡,所以你可以直接用cout 但在iostream裡面,它所定義的東西都在名字空間std裡面,所以你必須加上 using namespace std才能使用cout 一般乙個c++的老的帶「.

h」副檔名的庫檔案,比如iostream.h,在新標準後的標準庫中都有乙個不帶「.h」副檔名的相對應,區別除了後者的好多改進之外,還有一點就是後者的東東都塞進了「std」名字空間中。

但唯獨string特別。 問題在於c++要相容c的標準庫,而c的標準庫里碰巧也已經有乙個名字叫做「string.h」的標頭檔案,包含一些常用的c字串處理函式,比如strcmp。

這個標頭檔案跟c++的string類半點關係也沒有,所以並非的「公升級版本」,他們是毫無關係的兩個標頭檔案。

如果是自己寫的標頭檔案,是必須加.h的。

12樓:匿名使用者

有木有h都無所謂,只要include這個檔名,確實存在就行。

比如經常寫的#include ,那麼系統的包含路徑下,是確實有iostream這個檔案存在的。

.h只是乙個慣例,提示這是個頭檔案,並非強制。

c++中指標前還加&是什麼意思

13樓:風若遠去何人留

區分使用位置,有兩種可能:

1 在定義時使用,如

int *a;

int * &p = a;

這種是c++中的引用,p本身不占用記憶體空間,只是a的乙個別名,對p的訪問完全等同於對a的訪問。

2 在非定義時,指標前加&表示取指標的位址。

如int * a;

int **p = &a;

這裡a本身是指標變數,在c語言中每個變數都有自己的記憶體空間,對變數做&操作,可以取得這個空間的首位址。於是&a就是取a的位址賦值給p,這樣,*p就等同於a。

14樓:匿名使用者

zheshi指標的位址,也就是存放指標的

15樓:匿名使用者

1. (cplex* & phead,。。。。)c++擴充的「引用」引數,c是沒有這個功能的,這phead雖是個物件指標,如果不加 & ,它本身也是傳值呼叫,phead這是實參是改變不了的,如果加了 &它就是傳址的(位址的位址),

這樣,子程式中改變形參phead的指向,實參也會同步改變,所以,「引用」引數傳遞更方便。如果你用c和話,你得這樣定義cplex ** phead 更不方便 .

2. 反向新增新結點的好處:

總是對隊頭新增,就不需要一步步的指標移動隊尾的前一結點,否則,費事費時。

16樓:

對位址的指標,雙重指標

c++ 裡面類名後面跟乙個&和*是什麼意思,有什麼區別?

17樓:du瓶邪

&表示引用

*表示指標

單繼承的定義格式如下:

class <派生類名》:《繼承方式>《基類名》

;《繼承方式》常使用如下三種關鍵字給予表示:

public 表示公有基類;

private 表示私有基類;

protected 表示保護基類;

18樓:

* 表示指標

& 表示取位址符

定義的class a這個類的物件mylnstance 的值是空取classa從getlinstace裡面的位址希望對你有所幫助

19樓:匿名使用者

&是引用,*是指標,&的話就是直接對傳進來的變數操作 *的話和&類似

C指標與C指標有什麼區別,C類的物件和類的指標的區別,指標和引用的區別

c 裡面的指標可以指向物件 動態申請記憶體的時候用new運算子 c語言的指標指向的是記憶體 不懂物件 動態申請記憶體的時候用malloc系列的函式 都一樣,為乙個4或8位元組的變數,儲存乙個位址值 指標都是一樣的,根據個人需要定義 感覺都是一樣的啊 有區別嗎?c 指標與c指標有什麼區別?c 裡面的指...

基金a類c類有什麼區別買哪個好,基金a類和c類有什麼區別

不少 簡稱後面會帶a b c等等不同的字母,顯示了同乙個 設定了不同的 份額。有的按照收費模式劃分,有的按照持有金額劃分,有的按照風險收益結構劃分,有的根據投資者型別或者銷售渠道劃分,有的根據交易幣種劃分等等。然而,這些字母具體的含義並沒有統一的標準,不同 下同一字母的含義可能有所不同。這其中,最為...

c 中 字首和字尾有什麼區別

許詩文 class newint newint int iniint rootint iniint newint operator newint operator int 字尾,對引數 int 不要疑惑,int沒有實質的作用,僅僅是為了區別字首方式,標誌這個 操作符是字尾形式 private int...