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