W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
一般情況下,封裝的意思是提取出一段代碼,包裝在一個函數(shù)里,這樣使你能夠在適合的地方使用此函數(shù)。我們已經看到過兩個封裝的示例: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取代原來的2。
如果我們調用此函數(shù)時,給參數(shù)賦值為2,我們的輸出就和之前一樣。如果參數(shù)值為3,則輸出為:
3 6 9 12 15 18
如果參數(shù)值為4,則輸出為:
4 8 12 16 20 24
現(xiàn)在你大概可以猜到我們將怎樣取打印乘法表:使用不同的參數(shù)值反復調用printMultiples。事實上我們將使用另一個循環(huán)來迭代打印各行。
int i = 1;
while (i <= 6) {
printMultiples (i);
i = i + 1;
}
首先要注意這個循環(huán)和printMultiples內部那個循環(huán)的相似之處。我所做的只是用一句函數(shù)調用取代打印語句。
這段程序的輸出如下:
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
這就是一個(有點粗糙的)乘法表。如果你受不了這種粗糙,就請將列之間空格替換為制表符,看看輸出什么。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: