C++ 添加新函數(shù)

2023-03-20 15:48 更新

到目前為止我們只使用了C++內(nèi)置的函數(shù),然而也可以添加新函數(shù)。實際上我們已經(jīng)見過一個函數(shù)定義了:main。main這個函數(shù)名很特殊,因為它表示程序開始執(zhí)行的地方,但main函數(shù)的語法形式和其它函數(shù)定義一樣:

void 函數(shù)名(參數(shù)列表) {
  語句
}

你可以為自己的函數(shù)任意定義名稱,但不能命名為main或者其它C++關(guān)鍵字。參數(shù)列表指定了使用(或稱為調(diào)用)新函數(shù)所需要提供的信息(如果有的話)。

main函數(shù)定義中的空括號表示它不攜帶任何參數(shù)。我們首先要寫的幾個函數(shù)也是沒有參數(shù)的,語法形式如下:

void newLine() {
  cout << endl;
}

此函數(shù)名為newLine,只有一個語句,用以輸出換行符,其中換行用特殊值endl表示。

在main函數(shù)中,我們可以像調(diào)用C++內(nèi)置函數(shù)一樣調(diào)用這個新函數(shù): void main () { cout << "First Line." << endl; newLine (); cout << "Second Line." << endl; }

這段程序輸出如下: First line.

Second line.

注意:輸出的兩行之間有多余的空行。我們要想在兩行之間出現(xiàn)更多的空行該怎么做呢?可以重復(fù)調(diào)用同一個函數(shù):

void main ()
{
    cout << "First Line." << endl;
    newLine ();
    newLine ();
    newLine ();
    cout << "Second Line." << endl;
}

或者我們寫一個新函數(shù),命名為threeLine,作用是打印3個空行:

void threeLine ()
{
  newLine (); newLine (); newLine ();
}
void main ()
{
    cout << "First Line." << endl;
    threeLine ();
    cout << "Second Line." << endl;
}

對于這個程序,你應(yīng)該注意以下幾點:

你可以反復(fù)調(diào)用同一處理過程,事實上這種做法是非常普遍、實用的。

你可以讓一個函數(shù)調(diào)用另一函數(shù)。在本例中,main函數(shù)調(diào)用threeLine,threeLine又調(diào)用newLine。同樣,這也是普遍、實用的做法。

在threeLine這個函數(shù)中,我一行寫了三條語句,這符合語法規(guī)范(記住,空格和空行通常不改變程序的意義)。然而更好的方式通常是每條語句獨占一行,這樣程序更易讀,我是為了節(jié)約篇幅才破壞了這條規(guī)則。

為什么我們值得費力氣來創(chuàng)建這些新函數(shù)?到現(xiàn)在為止可能講的還不是很清楚。實際上原因有很多,本例只說明了兩點:

創(chuàng)建新函數(shù)使你有機(jī)會給一組語句起個名字。函數(shù)將一個復(fù)雜的計算過程隱藏在一個簡單指令背后,并使用英語單詞取代晦澀代碼,可以起到簡化程序的作用。試問,newLine和cout << endl,哪個更清晰呢?

創(chuàng)建新函數(shù)能夠去除重復(fù)代碼,使程序更短小。例如,連續(xù)打印九個空行的一種簡單做法是調(diào)用treeLine三次,那么連續(xù)打印27個空行你要怎么做呢?

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號