void
function
(int a,
unsigned
int n){...}
void
function
(int
*p,unsigned
int n){...}
int a[10]
;function
(a,10
);
int a[10]
;sizeof
(a)=
40; sizeof
(a[0])
=4
char s[9]
="cpp-prog"
;// 正確
char s[9]
; s =
"cpp=prog"
// 錯誤
void
function
(int a[
],unsigned
int n,
unsigned
int m)
//錯誤寫法
void
function
(int a[
3],unsigned
int m)
//正確寫法
int n =10;
const
int* p =
&n
int n =10;
int*
const p =
&n
int n =10;
const
int*
const p =
&n
當基類指標指向派生類的時候,若基類析構函式不宣告為虛函式,在析構時,只會呼叫基類而不會呼叫派生類的析構函式,從而導致記憶體洩露。
必須通過基類的指標或者引用去呼叫函式。
基類中必須包含虛函式,且在派生類中必須完成了虛函式的重寫。
C 的易混概念
靜態多型 過載 根據函式的引數個數和型別區分呼叫的函式。早繫結 動態多型 根據所指物件的虛函式表決定呼叫的函式。晚繫結 函式的覆蓋 過載 隱藏 成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無 覆蓋 派生類函式覆蓋基類函式,特徵是...
C語言易混易錯知識彙總(一)
1 實數型常數有單精度和雙精度之分,但無有符號和無符號之分 2 單精度實型常量由常量值後跟f或f表示 3 實型常量隱含按雙精度型處理 4 c語言關鍵字 asm auto break case cdecl char const continue default do double else enum ...
python 易混地帶
每門程式語言都有易混淆的部分,下面列舉出一些python的易混淆知識點。和 is 的區別在python中,操作符測試值的相等性 is 表示式測試物件的一致性,即是否指向同乙個物件。list1 1,a 3 list2 1,a 3 list1 list2,list1 is list2 true,fals...