初始類體驗

2021-08-03 10:40:18 字數 1589 閱讀 7259

一.c和c+的區別總結

1.檔案區別

簡單來說,原始檔字尾名不同,乙個.c,乙個.c++,在建立原始檔什麼都不給的情況下,預設為.cpp

2.返回值

在c中,如果沒有給定函式返回值型別,預設為int 型;在c++中,如果沒有給定函式返回值型別,必須返回void型,如果沒有void,編譯將會出錯。

3.引數列表

在c中,函式如果沒有指定引數列表,預設可以接收任意多個引數

在c+中,因為嚴格的引數列表檢測,沒有引數列表的情況下,預設為void,不接收任何引數

4.預設引數

預設引數是宣告定義函式時,為函式的引數指定乙個預設值。在呼叫該函式時,如果沒有定義實參,則使用該預設值

5.函式過載

c語言支援函式過載,c++語言不支援函式過載(過載函式是函式的一種特殊情況,c+允許在同一作用域中宣告幾個功能類似的同名函式,這些同名函式的形參列表,引數個數,型別,順序,必須不同,常用來處理功能類似,資料型別不同的函式)

二.引用與指標

1.引用概念

引用不是新定義乙個變數,而是給已存在變數取乙個別名,編譯器不會為引用變數新開闢一塊新的記憶體空間,而是與已存在的變數共用一塊記憶體空間

2.引用特性

(1)引用在定義時必須初始化

(2)乙個變數可以有多個引用

(3)引用一旦繫結乙個變數,就不能改變為其他變數的引用

c語言中函式有兩種傳參的方式:

傳值和傳址

。以傳值方式,

在函式呼叫過程中會生成乙份臨時變數用形參代替

,最終把實參的值傳遞給新分

配的臨時變數即形參。它的優點是避免了函式呼叫的***,確無法改變形參的值。

如果要改變實

參的值,只能通過指標傳遞。

以下為三個例子比較::

(1)傳值

void swap(int left,int right)

(2)指標傳址

void swap(int *left,int *right)

(3)引用交換

void swap(int &left,int &right)

**指標交換和引用交換最簡單不同,在交換變數時,指標也要隨著交換,而引用不用

3.引用與指標的區別

(1)相同點:底層的實現方式相同,都是按照指標的方式來實現的

(2)不同點:引用必須初始化,而指標可以不用,需要時初始化為null

引用一旦定義就不能改變,而指標可以。

sizeof不同,自++含義不同,可以有多級指標,但不能有多級引用

4.總結

(1)、引用在定義時必須初始化,指標沒有要求。

(2)、一旦乙個引用被初始化為指向乙個物件,就不能再指向

其他物件,而指標可以在任何時候指向任何乙個同型別物件

(3)、沒有null引用,但有null指標。

(4)、在sizeof中含義不同:引用結果為引用型別的大小,

但指標始終是位址空間所佔位元組個數。

(5)、引用自加改變變數的內容,指標自加改變了指標指向

(6)、有多級指標,但是沒有多級引用

(7)、引用比指標使用起來相對更安全

Problem A 類的初體驗

home web board problemset standing status statistics time limit 1 sec memory limit 128 mb submit 723 solved 661 submit status web board 定義乙個類data,只有乙個...

Problem A 類的初體驗

定義乙個類data,只有乙個double型別的屬性和如下3個方法 1.void init double d 初始化屬性值。2.double getvalue 獲得屬性值。3.void showvalue 顯示屬性值。乙個double型別的數值。輸出輸入的值2次,每次佔一行。3.14 3.143.14...

XUtils3框架的初始體驗 一

1 開源位址 2 匯入工程 使用gradle構建時新增一下依賴即可 compile org.xutils xutils 3.2.2 使用eclipse構建時操作步驟如下 2 將xutils 3.2.0.jar 以及armeabi新增到工程的libs中即可。3 簡單介紹 xutils3一共有4大功能 ...