2.1如何編寫函數
函數的4個部分:傳回類型,函數名,參數清單,函數體。
2.2函數的調用
兩種參數傳遞方式:by value 和 by reference。
pass by reference
面對reference的所有操作都和面對“reference所指的對象”所進行的操作無二。
将參數聲明為reference的兩個理由:1.希望直接對所傳入的對象進行修改。2.希望降低複制大型對象的額外負擔。如果目的僅僅是2,那麼建議加上const。
pointer 可能并不指向某實際的對象。提領pointer是,一定要先确認其值非零。
作用域 scope
file scope内的對象具有所謂的static extent,意思是該對象的記憶體在main()開始執行之前即已經配置設定好。
動态記憶體管理
heap memory是由程式員自行管理的記憶體。
2.3提供預設參數值
預設參數值的resolve操作由最右邊開始執行。
預設參數值隻可以指定一次,為了更高的可見性,我們決定将預設值放在函數聲明處而非定義處。
2.4使用局部靜态對象
file scope對象會打斷各個函數之間的獨立性,使他們難以了解。
2.5 聲明inline函數
2.6 重載
參數清單不相同(參數類型不同,或者是參數個數不同)的兩個或多個函數可以擁有相同的名稱
為什麼傳回類型不足以将函數重載?傳回類型無法保證提供給我們一個區分不同的重載函數的語境。