1. 定義與實現
2. 建立函式來源和標頭檔
在前一篇初步了解函式的基本語法後,我們可以來談談函式的定義與實現。所謂函式的定義是指如下語法:
int add (int a, int b);
和定義變數一樣,我們可以先定義有個函式叫做add,以及它所需要的參數有a和b。像這樣的設計語法,只要擺在程式碼最上方的位置,
就可以先讓程式知道有一個函式叫做add,便可以在程式碼內部隨地調用函式,而不受程式碼順序的限制。
舉例來說,如前篇提到的範例若改成如下的設計:
int main () {
cout << "c = " << add(1, 2) << endl;
}
int add (int a, int b) {
return a + b;
}
此時你會發現在編譯時會出現錯誤,錯誤訊息告訴你它並不曉得add是什麼意思,因為在還沒定義add函式之前,程式就先調用了add,因此產生了錯誤。
這時,就可以用上述的方式來解決這樣的問題,我們可以將定義和實現拆開來:
int add (int a, int b); // 先定義一個函式叫做add
int main () {
cout << "c = " << add(1, 2) << endl;
}
// add函式的實現如下
int add (int a, int b) {
return a + b;
}
在更前面的篇章C/C++教學: 第三課 - Hello World有提到了如何建立來源檔和標頭檔,
在這裡我們可以用一樣的方法先建立好這兩個檔案。
建立完成之後,我們可以在標頭檔中寫上函式的定義。
/*
在你建立的標頭檔中(*.h 或 *.hpp)寫下所有你設計的函式定義
*/
int add (int a, int b);
int subtract (int a, int b);
... //寫下所有你設計的函式定義
接著我們再到新建立的來源檔案中,撰寫這些函式的實現,如下:
/*
在你建立的來源檔中(*.c 或 *.cpp)寫下所有你設計的函式實現
*/
int add (int a, int b)
{
return a + b;
}
int subtract (int a, int b)
{
return a - b;
}
... //寫下所有你設計的函式實現
接下來再回到main.cpp來源檔或main.hpp標頭檔,在這兩個其中之一寫上引入我們新建立的標頭檔,即可調用我們剛剛全部定義的函式。
#include<iostream>
#include<xxx.h> // 寫上你新建的標頭檔
int main () {
cout << "res = " << add(1, 2) << endl; // 調用定義的add函式
cout << "res = " << subtract(4, 2) << endl; // 調用定義的subtract函式
}
Last updated: