1. 程式人生 > >自己準備的C++方面面試題

自己準備的C++方面面試題

自己整理的初級面試題,主要是一些C++方面的內容,大部分都是網上的,只是加上自己的整理而已,可能會更新,也可能鹹魚,希望不會被舉報侵權吧,拜託!!

 

三大特性
封裝:指資料和實現操作的程式碼集中起來放在物件內部,並儘可能隱蔽物件的內部細節
繼承:子類可以直接使用父類的公有屬性與方法
多型:父類指標可以指向子類物件,一個介面,多種方法,是對於不同物件接收相同訊息時產生不同的動作

請問C++的類和C裡面的struct有什麼區別?
c++中的類具有成員保護功能,並且具有繼承,多型這類特點,而c裡的struct沒有

建構函式
與類同名,無返回值

解構函式
特殊的類成員函式。沒有引數,沒有返回值,也沒有過載,不能隨意呼叫。在類物件生命期結束的時候,由系統自動呼叫釋放在建構函式中分配的資源。

虛擬函式
在基類中聲名為virtual並在一個或者多個派生類中被重新定義的函式

純虛擬函式
在基類中為其派生類保留一個函式的名字,以便派生類根據需要對基類的虛擬函式重新定義

用變數a給出下面的定義
a) 一個整型數
b)一個指向整型數的指標
c)一個指向指標的的指標,它指向的指標是指向一個整型數
d)一個有10個整型數的陣列
e) 一個有10個指標的陣列,該指標是指向一個整型數的。
f) 一個指向有10個整型數陣列的指標
g) 一個指向函式的指標,該函式有一個整型引數並返回一個整型數
h)一個有10個指標的陣列,該指標指向一個函式,該函式有一個整型引數並返回一個整型數

a) int a;
b) int *a;
c) int **a;
d) int a[10];
e) int *a[10];
f) int (*a)[10];
g) int (*a)(int);
h) int (*a[10])(int);

全域性變數和區域性變數的區別
全域性變數的生命週期是整個程式執行的時間,而區域性變數的生命週期則是區域性函式或過程呼叫的時間段

const 有什麼用途
1.定義const常量
2.修飾函式的引數、返回值、甚至函式的定義體

static有什麼用途?(請至少說明兩種)
1.限制變數的作用域。
2.設定變數的儲存域。

常用排序:
快速、選擇、插入、冒泡、希爾

引用和指標
指標是變數,引用是別名。引用不能為空,指標可以為空。指標可以有多級,引用只有一級,指標可以改變,引用不能改變

過載和重寫
過載:函式名相同,函式引數的型別或者個數不同
重寫:子類重新定義父類虛擬函式的方法。