C++--第二章(C過(guò)度到C++)
1? 例程
2 const 在C中修飾的是不能改變的量,不是常量,可以寫(xiě)成 const int a,因?yàn)橹皇锹暶饕粋€(gè)變量。
? ? 而C++中const要全局使用會(huì)被修飾成extern?,一般默認(rèn)局部變量。
##聲明:常量指針&指針常量&指向常量的常量指針
? ? 當(dāng)然C++中const聲明主要有三種:
? ?1> 指向常量的指針?
? ? ?const char * p?= "cgc";??
? ? 該方法不允許改變指針變量,p[3]='h';是錯(cuò)的。
? ? p = "wtl"; // 可以
? ? 可以改變p指向的地址,此處給了一個(gè)字符串地址。
? ? 2>常量指針??
char* const p?= "abcd";
創(chuàng)建一個(gè)常指針,一個(gè)不能移動(dòng)的固定指針,可更改內(nèi)容。
?p[3] = 'x';
但不能改變地址,p?= 'dsff'; 錯(cuò)
3> 指向常量的指針
const char* const pc = "abcd";
內(nèi)容和地址均不能改變,兩個(gè)const限定死了。
const用于保證實(shí)參在該函數(shù)內(nèi)不被改動(dòng)。???
3 void型指針
任何類(lèi)型的指針的值都可以賦給void類(lèi)型的指針變量。
但已賦值的void型指針,要再進(jìn)行顯示轉(zhuǎn)換。
4內(nèi)聯(lián)函數(shù):
inline,避免CPU開(kāi)銷(xiāo)。
可替代宏,宏節(jié)省調(diào)用時(shí)間但不安全。
內(nèi)聯(lián)函數(shù)中不能有復(fù)雜語(yǔ)句,for和while.....
適用于小型簡(jiǎn)單內(nèi)聯(lián)函數(shù)
5 自帶默認(rèn)參數(shù)
void intt(int a = 5, int b = 2){}
int main (){? ?
init (100, 1);
init (23);
init ();
}
從左自右將實(shí)參和形參結(jié)合,沒(méi)有按默認(rèn)值補(bǔ)齊。
所有默認(rèn)值只能出現(xiàn)在不取值參數(shù)的右邊。
6 重載
只要形參不一樣(個(gè)數(shù)、類(lèi)型)就行。
返回值類(lèi)型不在檢測(cè)范圍。下面就不行,不算重載
7 二義性
會(huì)出現(xiàn)二義性,避免出現(xiàn)二義性參考下圖使用純虛函數(shù)。
或者使用類(lèi)名::變量名顯性訪(fǎng)問(wèn)
8 自動(dòng)轉(zhuǎn)換
short->int->float->double
9 作用域符
希望在局部變量的作用域內(nèi)使用同名的全局變量,加上::,也是限定符
10 new&delete
int *p;
p = new int?
delete p;
創(chuàng)建時(shí)可直接分配
11引用
引用就是別名
#引用就是和原變量一個(gè)內(nèi)存單元,不分配存儲(chǔ)空間。
引用要初始化,要賦變量或者別的引用。&J = I
引用作為函數(shù)參數(shù)、使用引用返回值。
void不能用引用、數(shù)組不能引用、不能建立引用的引用、可以將引用地址賦值給指針,指針指向原來(lái)變量、可以結(jié)合const限定引用的值。