W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
一般情況下,封裝的意思是提取出一段代碼,包裝在一個(gè)函數(shù)里,這樣使你能夠在適合的地方使用此函數(shù)。我們已經(jīng)看到過(guò)兩個(gè)封裝的示例:4.3小節(jié)的printParity函數(shù)和5.8小節(jié)的isSingleDigit。
泛化的意思是提取出特例的代碼(如打印2的倍數(shù)),修改它使之更通用(如打印任意整數(shù)的倍數(shù))。
下面的函數(shù)封裝了前一小節(jié)的循環(huán)代碼,并泛化為打印n的倍數(shù)。
void printMultiples (int n)
{
int i = 1;
while (i <= 6) {
cout << n*i << " ";
i = i + 1;
}
cout << endl;
}
封裝要做的就是添加第一行代碼,聲明了函數(shù)名、參數(shù)和返回值類型。泛化要做的就是用參數(shù)n取代原來(lái)的2。
如果我們調(diào)用此函數(shù)時(shí),給參數(shù)賦值為2,我們的輸出就和之前一樣。如果參數(shù)值為3,則輸出為:
3 6 9 12 15 18
如果參數(shù)值為4,則輸出為:
4 8 12 16 20 24
現(xiàn)在你大概可以猜到我們將怎樣取打印乘法表:使用不同的參數(shù)值反復(fù)調(diào)用printMultiples。事實(shí)上我們將使用另一個(gè)循環(huán)來(lái)迭代打印各行。
int i = 1;
while (i <= 6) {
printMultiples (i);
i = i + 1;
}
首先要注意這個(gè)循環(huán)和printMultiples內(nèi)部那個(gè)循環(huán)的相似之處。我所做的只是用一句函數(shù)調(diào)用取代打印語(yǔ)句。
這段程序的輸出如下:
1 2 3 4 5 6
2 4 6 8 10 12
3 6 9 12 15 18
4 8 12 16 20 24
5 10 15 20 25 30
6 12 18 24 30 36
這就是一個(gè)(有點(diǎn)粗糙的)乘法表。如果你受不了這種粗糙,就請(qǐng)將列之間空格替換為制表符,看看輸出什么。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: