在寫函數(shù)的時(shí)候,很多函數(shù)只是設(shè)置某個(gè)變量然后做一些其他的相應(yīng)的處理,比如:
void?CInstruction::SetName(const?CString&?strName)
{
????m_strName?=?strName;????
????????????//some other operations
????if(!IsRed())
????{
??????? //...????????
????}
}
這樣的函數(shù),返回類型為
void順理成章.
但是,隨著程序繼續(xù)往下寫,需要處理的情況越來越復(fù)雜,這個(gè)時(shí)候,發(fā)現(xiàn)SetName這個(gè)函數(shù),返回void已經(jīng)不夠用了,因?yàn)榭梢孕枰繱etName這個(gè)函數(shù)調(diào)用有沒有成功,因?yàn)榭赡軅魅氲膕trName不一定是合法的,如果調(diào)用SetName函數(shù)沒有成功,可能要繼續(xù)調(diào)用別的函數(shù),這個(gè)時(shí)候,可能就要講返回類型改為BOOL.
而后來繼續(xù)想,一個(gè)函數(shù)的返回值,應(yīng)該更加充分的利用,調(diào)用一個(gè)函數(shù)時(shí),就該充分的利用它的返回值;而在寫一個(gè)函數(shù)時(shí),也應(yīng)該注意到這一點(diǎn).如果實(shí)在沒有什么值好返回,就返回TRUE
所以,對(duì)于函數(shù),如果在設(shè)計(jì)時(shí)準(zhǔn)備把返回類型定為void,其實(shí)可以改為BOOL
1)最初可能沒有用,但情況會(huì)越來越復(fù)雜
2)充分利用函數(shù)的返回值