靜態(tài)函數(shù)的聲明和定義 打熱補(bǔ)丁為什么不能用static?
打熱補(bǔ)丁為什么不能用static?簡(jiǎn)而言之,當(dāng)friendstatic聲明一個(gè)全局函數(shù)時(shí),friend將默認(rèn)該函數(shù)為extern,這與下面的靜態(tài)函數(shù)沖突。Staticfriend違反了不能在frien
打熱補(bǔ)丁為什么不能用static?
簡(jiǎn)而言之,當(dāng)friendstatic聲明一個(gè)全局函數(shù)時(shí),friend將默認(rèn)該函數(shù)為extern,這與下面的靜態(tài)函數(shù)沖突。Staticfriend違反了不能在friend聲明之前添加存儲(chǔ)類型關(guān)鍵字的規(guī)則。
靜態(tài)函數(shù)和普通函數(shù)的區(qū)別?
靜態(tài)函數(shù)與普通函數(shù)的區(qū)別:
使用static修改的函數(shù)在此源代碼文件中受到限制,不能用于此源代碼文件調(diào)用以外的代碼文件。默認(rèn)情況下,普通函數(shù)是外部函數(shù),也就是說(shuō),它們可以被其他代碼文件調(diào)用。
在函數(shù)的返回類型前添加關(guān)鍵字static,函數(shù)定義為靜態(tài)函數(shù)。普通函數(shù)的定義和聲明在默認(rèn)情況下是外部的,但是靜態(tài)函數(shù)只在聲明文件中可見(jiàn),不能被其他文件使用。因此,定義靜態(tài)函數(shù)具有以下優(yōu)點(diǎn):“<1>”可以在其他文件中定義同名函數(shù)而不會(huì)產(chǎn)生沖突。
<2>其他文件不能使用靜態(tài)函數(shù)。