C C 基礎整理(4)

2021-07-25 06:15:35 字數 869 閱讀 7955

1:靜態成員函式:

(1)不與任何物件相關聯,因此不具有任何this指標

(2)無法訪問屬於類物件的非靜態資料成員,也無法訪問非靜態成員函式

(3)static成員函式不能被宣告為const,因為將成員函式宣告為const就是承諾不會修改該函式所屬的物件,而static成員函式不屬於任何物件。

(4)static成員函式不能被宣告為虛函式

2:使用static成員變數而不是全域性變數

(1)static成員的名字是在類的作用域中,因此可避免與其他類的成員或全域性物件名字衝突

(2)可以實施封裝,static成員可以是私有成員,而全域性物件不可以。

(3)通過閱讀程式容易看出static成員是與特定類關聯的,這種可見性可清晰的顯示程式設計師的意圖

3:mallo與new

char p1=(char)malloc(10);

char *p2=new char[10];

4:下面程式的錯誤

void getmemory(char *p)

int main()

p是區域性變數被釋放了,但malloc的空間一直沒有free,成為無法被引用的空間

str指向文字常量區,文字常量區不允許被修改。

5:單鏈表的反向列印

void printlist(listnode *p)

//ci與ri必須在成員初始化列表中初始化

private:

int i;

const int ci;

int &ri;

}

c c 整理 c 物件導向(4)

下列對靜態資料成員的描述中,正確的是 a 靜態資料成員可以在類體中進行初始化 b 靜態資料成員不可以被類的物件呼叫 c 靜態資料成員不能收private控制符的作用 d 靜態資料成員可以直接用類名呼叫 解析 a錯誤。靜態資料成員必須在類外面初始化,以示與普通資料成員的區別 b錯誤cd正確 inclu...

C C 基礎易錯題整理5

1.若x 為整數,c語言 正確 表達 數學 式 0 x 5的是 a.0 x 5 b.x 0 x 1 x 2 x 3 x 4 c.x 0 x 5 d.x 0 x 5 正確答案 d 你的答案 b 錯誤 a選項,0 x 5這種寫法在c語言中是錯誤的,應該寫作 x 0 x 5 所以a選項錯誤。b選項,題幹中...

C C 基礎知識點整理

1.includeusing namespace std int main cout aa 0 1 endl cout aa 1 endl cout aa 0 endl cout aa 1 endl return 0 2.某二叉樹的後序遍歷和中序遍歷是一樣的都為abcdef,那麼它按層輸出的結果為 ...