我們順著範例程式,很快的帶領讀者認識 C++ 開發軟體的各個面向,有些細節,我們只是稍微提了一點,並沒有詳細解釋,例如繼承 (inheritance)
#include <iostream>
using std::cout;
using std::endl;
class SuperClass {
public:
int super_data_member;
SuperClass();
void super_function();
};
SuperClass::SuperClass() {
super_data_member = 1;
}
void SuperClass::super_function() {
cout << "super_data_member: " << super_data_member << endl;
}
class SubClass : public SuperClass {
public:
int sub_data_member;
SubClass();
void sub_function();
};
SubClass::SubClass() {
sub_data_member = 2;
}
void SubClass::sub_function() {
cout << "sub_data_member: " << sub_data_member << endl;
}
int main(void) {
SubClass demo;
demo.super_function();
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:inherit_demo.cpp
功能:示範繼承的寫法
作者:張凱慶 */
繼承是在子類別 (subclass) 的識別字後使用分號 : ,後面接父類別 (superclass) 的識別字,我們只有簡略介紹子類別具有父類別的特性,像是親代遺傳一般,卻還有很多有關繼承的細節沒有提,例如哪些成員會被繼承,哪些又不會。
除了繼承之外,例外處理 (exception handling) 使用關鍵字 try 、 catch 、 throw 等,我們也沒有詳細介紹,其他還有許多重要觀念,像多重繼承 (multiple inheritance) 、命名空間 (name space) 、樣板 (template) 、泛型 (generic) 等,這些對學習 C++ 而言的確都很重要。
我們沒有詳細介紹這些概念的理由很簡單,因為一旦要很詳細教導剛入門的初學者去寫繼承或是樣板,勢必停下腳步討論很多該注意的地方,從而到 GUI 之前的篇幅可能暴增兩倍到三倍,讀者能不能在短時間真正的消化吸收這麼多的內容,我們持保留的態度。
然而弔詭的是,初學者只需要有觀念,不必完全理解,就能直接開發 GUI 的應用軟體。就大多數初學者感興趣的開發項目而言,初學者有繼承的概念,會使用繼承的寫法就夠了,因為實際很多的程式碼都可以直接套用標準程式庫 (standard library) 或第三方程式庫 (third-party library) 的內容,完全無須自己從頭開發新的程式。
熟練一種工具(程式庫)是一種學習,熟練去開發工具又是另外一種學習。我們認為對初學者而言,先學會使用工具是比較重要的,至於要學習怎麼去開發工具,倒不如先熟練使用工具,玩得很熟了,箇中道理不用言語都能體會之後,再去學習開發給別人使用的工具,自然很快就得心應手。
所以在這份《C++ 入門指南》中,我們不以探討語言的細節為目的,直接引導初學者開發應用程式,想必一路順著教材順序學習的讀者,大都能自行摸索、嘗試開發一些 Qt 製作的 GUI 軟體囉!
如果英文閱讀有問題,那就把英文學好吧!畢竟大量的資源或文件都是英文的,如果想精深程式設計,那麼面對英文是遲早的問題,所以趁早面對英文,接受英文才是良策 ^_^
下一步總有很多不同的選擇,選擇好自己喜歡的方向,不外就大膽去嘗試,有了經驗後就一步步累積,一點一點的進步下去囉!
相關教學影片
- 猜數字遊戲的計算核心 ⇨ YouTube 頁面連結
- 猜數字遊戲的 Qt Quick 專案 ⇨ YouTube 頁面連結
- 第七堂課舉一反三 ⇨ YouTube 頁面連結
- 第八堂課導覽 ⇨ YouTube 頁面連結
- 利用 Qt Creator 建立 Android 的 Qt Quick 專案 ⇨ YouTube 頁面連結
- 利用 QML 設計的兩頁式 App ⇨ YouTube 頁面連結
- C++ 的版本問題 ⇨ YouTube 頁面連結
- 整合功能 ⇨ YouTube 頁面連結
- 自訂 App 圖示與實機測試 ⇨ YouTube 頁面連結
- 猜數字遊戲的 Qt Quick Android 專案 ⇨ YouTube 頁面連結
- 第八堂課舉一反三 ⇨ YouTube 頁面連結
中英文術語對照 | |
---|---|
繼承 | inheritance |
子類別 | subclass |
父類別 | superclass |
例外處理 | exception handling |
多重繼承 | multiple inheritance |
命名空間 | name space |
樣板 | template |
泛型 | generic |
標準程式庫 | standard library |
第三方程式庫 | third-party library |