我們先看到以下
原始碼 (source code) 檔案就是我們寫程式 (program) 所用的 .cpp 檔案,原始碼檔案經過編譯器 (compiler) 編譯 (compile) 後就是可執行的程式檔案,然後在透過作業系統啟動程式執行。
我們提供的簡單範例的程式原始碼如下
// 引入標準程式庫中相關的輸入、輸出程式
#include <iostream>
// 引入標準程式庫中相關的字串程式
#include <string>
// std 為標準程式庫的命名空間
using namespace std;
int main(void) {
// 下面建立名稱為 m , string 型態的物件
// 小括弧為 string 的建構子,雙引號為字串字面常數
string m("There is no spoon.");
// cout 用來輸出的物件, endl 為新行符號 '\n'
cout << endl << m << endl << endl << endl;
// 最後回傳 0 給作業系統
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:demo.cpp
功能:示範簡單的 C++ 程式
作者:張凱慶 */
我們使用跨平台的編譯器 GCC 及 Visual Studio Code ,於 Windows 、 Mac 或 Linux 的編譯結果都應一致。於 Visual Studio Code 利用指令 g++ 的編譯結果如下
UNIX-Like 作業系統如 Linux 、 Mac 等都已經預設安裝好 GCC , Windows 可安裝 MinGW 或 Cygwin ,兩者是 GCC 在 Windows 的安裝檔專案,詳細安裝與設定可參考 C++ 開發環境 - 在 Windows 10 中安裝 MinGW 及設定環境變數。
Visual Studio Code 需要安裝 C++ 及 Code Runner 的 extension , C++ 的 extension 在偵測到 C++ 檔案就會建議安裝,至於安裝 Code Runner 的 extension 請參考 C++ 開發環境 - 在 Visual Studio Code 安裝 Code Runner 。
編譯完成,相同目錄下會產生 demo.exe 檔案
因為 Code Runner 的編譯指令加上了 -o dmeo ,參數 -o 後面接的是編譯輸出的執行程式檔名。
g++ 指令預設編譯輸出檔名為 a ,多數 UNIX-Like 作業系統預設輸出檔為 a.out , Windows 系統則是 a.exe 。
實際運用 Visual Studio Code 連帶需要懂得一些命令列的操作,往後也需要切換到 TERMINAL 頁籤進行編譯工作, TERMINAL 也就是運用 Windows PowerShell 操作檔案,有關 Windows PowerShell 的基本操作,請參考 C++ 開發環境 - Windows PoeweShell 簡易教學,至於如果想要直接在 Windows PowerShell 編譯並執行 C++ 程式,請參考 C++ 開發環境 - 在 Windows PowerShell 編譯 C++ 程式。
在 Windows 系統快速點擊兩次編譯好的應用程式圖示就可以執行程式,但是由於命令列程式啟動 Windows PowerShell 就會直接結束視窗,因此需要額外加入暫停程式執行的程式碼,請參考 C++ 開發環境 - 在 Windows 中點擊兩下執行程式。
此程式沒有用到太多 C++ 的特性,僅利用 string 型態 (type) 的建構函數 (constructor) 建立字串 (string) 物件 (object) ,然後利用標準程式庫 (standard library) iostream 的 cout 物件輸出字串到螢幕上。
接下來,我們們會陸續探討 C++ 語言的諸多細節,先來看看基本內建型態 (primitive built-in type) 與物件吧!
相關教學影片
中英文術語對照 | |
---|---|
原始碼 | source code |
程式 | program |
編譯器 | compiler |
編譯 | compile |
型態 | type |
建構函數 | constructor |
字串 | string |
物件 | object |
標準程式庫 | standard library |
基本內建型態 | primitive built-in type |
重點整理 |
---|
1. GCC 為跨平台的編譯器,編譯 C++ 程式的指令為 g++ 。 |
2. C++ 程式編譯成功,會產生系統的執行檔。 |
3. 執行編譯完成的程式,於命令列輸入檔名即可。 |
問題與討論 |
---|
1. 編譯與直譯的差別在哪裡?編譯的程式語言相較直譯的程式語言有什麼優點及缺點? |
2. 於 Windows 編譯的執行檔可以拿到 Mac 執行嗎? |
練習 |
---|
1. 於命令列重新編譯 demo.cpp ,加上參數 o 與指定輸出檔名。 |
2. 編譯「單元 1 」練習的 demo2.cpp ,並執行程式,比較與 demo.cpp 的編譯執行結果有何不同? |
3. 同上,改成編譯 demo3.cpp 。 |
4. 同上,改成編譯 demo4.cpp 。 |
5. 同上,改成編譯 demo5.cpp 。 |