C 必知必會題目整理

2021-08-03 15:02:36 字數 3656 閱讀 8825

c++問題整理

1.面向過程程式設計和物件導向程式設計各有什麼特點?

2.什麼是物件導向?物件導向的特點有哪些?

3.c++之父是誰?能否介紹一下?

4.請詳細說明register關鍵字作用

5.請詳細說明const關鍵字作用

6.請說明const與#define定義常量的區別

7.請詳細說明static關鍵字作用

8.簡述類的普通成員變數和靜態成員變數的區別

9.呼叫類的靜態成員的兩種方式是什麼

10.使用類的靜態成員變數是需要注意什麼問題

11.請說明引用和指標的區別

12.請說明內聯函式與帶參巨集函式的區別

13.請說明malloc和new的區別

14.請說明new的三種形態

15.什麼是函式過載

16.函式過載的條件是什麼?

17.為什麼要實現兩個版本下的過載?

18.請說明一下函式預設值的語法

19.請解釋extern 「c」的作用

20.如何定義命名空間?請說明namespace命名空間的作用

21.請說明有哪幾種型別轉化運算子,並解釋其作用

22.請說明class和struct的區別

23.前向宣告是什麼?

24.建構函式的特點是什麼?

25.請說明轉換建構函式的作用

26.請說明exlicit關鍵字的作用

27.說明mutable關鍵字的作用

28.有哪些是必須在初始化列表中初始化的?

29.有哪些會呼叫拷貝建構函式?

30.什麼是深拷貝?什麼是淺拷貝?

31.什麼是this指標,請解釋物件呼叫成員函式時傳遞物件的過程

32.有虛繼承時虛基類的建構函式由誰呼叫的?

33.虛析構函式的應用有哪些?

34.友元機制的作用是什麼?

35.友元使用的注意事項?

36.為什麼要對運算子過載?

37.運算子過載的兩種方式是什麼?

38.請說明一下運算子過載的規則

39.請程式設計實現++運算子、!運算子、賦值運算子的過載

40.請實現string類的運算子過載

41.請程式設計實現型別轉換運算子、->運算子的過載

42.c++中能夠提高**復用性的方法有哪些?

43.請說明公有、私有、保護繼承的規則

44.不能自動繼承的成員函式有哪些?

45.請解釋一下介面繼承和實現繼承

46.舉例說明你什麼時候會用抽象類,什麼時候更願意使用介面?

47.請解釋多繼承和多重繼承

48.請解釋繼承與組合的區別

49.基類、派生類之間的轉換要注意什麼?

50.多重繼承會造成什麼問題?解決該問題的方法是什麼?

51.請說明虛基類的作用

52.虛繼承對c++物件記憶體造成什麼影響?

53.什麼是多型?

54.多型的條件有哪些?

55.多型體現在哪些方面?

56.如果基類的介面沒法實現怎麼辦?

57.請說明虛函式對類的大小有什麼影響

58.請說明異常處理機制try的作用

59.請說明異常處理機制catch的使用方法

60.請說明異常處理機制throw的作用

61.請說明異常處理機制的優點

62.stl標準庫的六大元件是什麼?

63.容器的共同能力是什麼?

64.容器元素的條件是什麼?

65.請程式設計實現乙個string類,包含建構函式、賦值、連線、比較、字串、交換、查詢、替換、插入、刪除、迭代器處理等

66.請說明一下各個容器的優缺點以及容器該如何選擇?

67.c++模板有什麼作用

68.使用模板還有什麼注意事項?

69.什麼時候模板特例化?

70.什麼是設計模式?你在編碼過程中使用過哪些設計模式?

71.設計模式分為哪幾類?請具體說說

72.設計模式的基本原則有哪些?請分別解釋一下

73.設計模式中建立型模式有哪些??請舉例解釋一下

74.設計模式中結構型模式有哪些?它們分別的適用情況是什麼?

75.設計模式中行為型模式有哪些?它們分別的適用情況是什麼?

76.請舉例說明一下**模式、裝飾模式、介面卡模式運用的場景

77.請舉例說明一下策略模式、觀察者模式運用的場景

78.請程式設計實現乙個帶表頭的單向鍊錶,包含鍊錶的初始化、插入、刪除、遍歷、逆序等功能

79.解釋順序儲存結構和鏈式儲存結構的特點,並比較順序儲存結構和鏈式儲存結構的優缺點

80.解釋頭結點、第乙個結點(或稱首元結點)、頭指標這三個概念的區別

C 必知必會

條款2 多型 2 條款3 設計模式 5 條款4 stl 8 條款5 引用是別名而非指標 10 條款6 陣列形參 13 條款7 常量指標與指向常量的指標 16 條款8 指向指標的指標 19 條款9 新式轉型操作符 21 條款10 常量成員函式的含義 25 條款11 編譯器會在類中放東西 29 條款12...

C 必知必會 placement new

placement new placement new 是過載operator new的乙個標準 全域性的版本,它不能被自定義的版本代替 不像普通的operator new和operator delete能夠被替換成使用者自定義的版本 它的原型如下 void operator new size t,...

C 必知必會(4)

直接呼叫建構函式是行不通的,然而可以通過使用placement new來哄騙編譯器呼叫建構函式 void operatornew size t,void p throw placement new是operator new的乙個標準的過載版本,也位於全域性名字空間中,但和我們通常看到的operato...