陳擎文教學網:C++程式設計
目錄:
C++學習綱要:
  (1)C++基本知識 (1)各種變數型態宣告(int, char, bool, float, double)
(2)判斷結構:
if...else if...else
swith(){...case 0: break;
case 1: break;
default: break; }
☎txt = (...) ?(...) :(....)
(3)迴圈結構:
for(;;){.....}
while(){.....}
do{.....}while();
(4)函數function,與標頭檔header file:
(5)陣列變數:
(6)結構變數:
  (2)C++三大主題A (1)指標變數
(2)參考變數
☎用途:使用C++的API函數,經常會用『指標變數』,與『參考變數』來傳遞參數
  (3)C++三大主題B (1)物件導向變數
  (4)C++三大主題C (1)C 與 C++ 的字串運算(使用指標)
  (5)C++各種變數 (1)單一變數
(2)陣列變數,array variable
(3)結構變數,struct variable
(4)物件變數,object variable(class)
(5)指標變數,pointer variable
(6)參考變數,reference variable
(7)容器變數,vector,lis,iterator
  (5)C++自創API函數: (1)C++自創API函數

資源
  上課黑板 線上黑板 上課即時貼 舊版c++教學網站
  如何使用編輯C++的軟體 reurl免費線上編輯網站 Code::Blocks軟體(選第4個:codeblocks-20.03mingw-setup.exe)) dev C++軟體(官網)    
  C++線上教學網站 w3cschool教學網站 Standard C++ Library/C++函式庫教學網站    
  C++教學網站 1.Dev C++下載及安裝(影片) 1.Dev C++下載及安裝(網頁) 程式碼
  Goole 輸入法(Input software) Goole輸入法(Input:exe) Goole 輸入法(Input:zip) online goole input(中文) online goole input(英文)
 

>
 
chp(0)知名遊戲引擎所使用的程式語言
  1. Unity遊戲引擎: (1)不寫程式,用可視化工具:
bolt(2021年收購bolt,開始預設支援),示意圖
playmaker(還要外掛插件),示意圖
(2)寫程式,用c#示意圖
  2. Unreal遊戲引擎: (1)不寫程式,用可視化工具:blueprint藍圖示意圖
(2)寫程式,用c++示意圖
  3. Cocos Creator 遊戲引擎: (1)不寫程式,用可視化工具:
(2)寫程式,用javascript示意圖
 

 
chp(0)知名遊戲引擎所使用的程式語言
 

 
chp(1)各種變數型態宣告(int, char, bool, float, double)
  2.建立第一個專案(影片) 2.建立第一個專案(網頁) 程式碼
  3.建立HelloWorld專案(影片) 3.建立HelloWorld專案(網頁) 程式碼 成果圖片
  4.輸出各種資料型別(literal value):整數,小數,文字,布林值(影片) 4.輸出各種資料型別(literal value):整數,小數,文字,布林值(網頁) 程式碼 成果圖片
  宣告變數 5.宣告變數:整數(影片) 5.宣告各種變數:整數(網頁) 程式碼 成果圖片
  cin/cout 6.輸入/輸出cin/cout,標頭檔(.h),名稱空間(namespace) (影片) 6.輸入/輸出cin/cout,標頭檔(.h),名稱空間(namespace) (網頁) 程式碼6-1 程式碼6-2
  成果圖片6-1 成果圖片6-2
  7.算術運算:加減乘除餘數(影片) 7.算術運算:加減乘除餘數(網頁) 程式碼7 成果圖片
  8.遞增與遞減運算符號(++,--)(影片) 8.遞增與遞減運算符號(++,--)(網頁) 程式碼8-1 程式碼8-2
  成果圖片8-1 成果圖片8-2
  9.指派運算子(a+=5)(影片) 9.指派運算子(a+=5)(網頁) 程式碼9 成果圖片
  10.關係運算子(a!=5, a>=5, a==5)(影片) 10.關係運算子(a!=5, a>=5, a==5)(網頁) 程式碼10 成果圖片
  11.條件運算子(a!=5 && b>=5 || c==5)(影片) 11.條件運算子(a!=5 && b>=5 || c==5)(網頁) 程式碼11 成果圖片
  12.條件運算子:not(!),三元條件運算符號 ternary (?:)(影片) 12.條件運算子:not (!),三元條件運算符號 ternary (?:)(網頁) 程式碼12 成果圖片
  13.函式呼叫:開根號(影片) 13.函式呼叫:開根號(網頁) 程式碼13 Standard C++ Library reference
  成果圖片
  14.型別不同時的處理:自動轉型(Implicit conversions)與指定轉型(Casting)(影片) 14.型別不同時的處理:自動轉型(Implicit conversions)與指定轉型(Casting)(網頁) 程式碼14 成果圖片
 

 
chp(2)判斷結構:
if 15.判斷式if-else:比較數字大小(影片) 15.判斷式if-else:比較數字大小(網頁) 程式碼15 成果圖片
  16.三個數字找出最大值(影片) 16.三個數字找出最大值(網頁) 程式碼16 成果圖片
  17.判斷是奇數還是偶數(影片) 17.判斷是奇數還是偶數(網頁) 程式碼17 成果圖片
  18.判斷是否為閏年(影片) 18.判斷是否為閏年(網頁) 程式碼18 成果圖片
switch 19.switch判斷10天後是星期幾(影片) 19.switch判斷10天後是星期幾(網頁) 程式碼19 成果圖片
 

 
chp(3)迴圈結構:
  20.switch判斷某月有幾天(影片) 20.switch判斷某月有幾天(網頁) 程式碼20 成果圖片
while 21.while重複判斷分數等級(影片) 21.while重複判斷分數等級(網頁) 程式碼21 成果圖片
  22.while(true)無窮迴圈,按n離開(影片) 22.while(true)無窮迴圈,按n離開(網頁) 程式碼22 成果圖片
for loop 23.for計數迴圈(影片) 23.for計數迴圈(網頁) 程式碼23 成果圖片
  24.計算1~100總和(影片) 24.計算1~100總和(網頁) 程式碼24 成果圖片
  25.雙迴圈印出99乘法表(影片) 25.雙迴圈印出99乘法表(網頁) 程式碼25 成果圖片
  26.列印2到100間的所有質數(影片) 26.列印2到100間的所有質數(網頁) 程式碼26 成果圖片
do...while() 27.do...while()選單(影片) 27.do...while()選單(網頁) 程式碼27 成果圖片
  28.break and continue 的基本及進階用法(影片) 28.break and continue 的基本及進階用法(網頁) 程式碼28 成果圖片
  29.Eclipse 安裝與執行(影片) 29.Eclipse 安裝與執行(網頁)
 

 
chp(4)陣列:
  30.C++進階:陣列,指標,物件導向變數(影片) 30.C++進階:陣列,指標,物件導向變數(網頁)
array陣列 31.一維陣列的宣告與存取(影片) 31.一維陣列的宣告與存取(網頁) 程式碼31 成果圖片
  32.一維陣列的記憶體配置, 陣列長度與迴圈,排序(影片) 32.一維陣列的記憶體配置, 陣列長度與迴圈,排序(網頁) 程式碼32 成果圖片
  33.多維陣列,記憶體配置(影片) 33.多維陣列,記憶體配置(網頁) 程式碼33 成果圖片
 

 
chp(5)函數:
Standard C++ Library 34.呼叫標準函式庫:數學次方(影片) 34.呼叫標準函式庫:數學次方(網頁) Standard C++ Library reference
  (1).Reference->C library->是最早的C語言函式庫,C++繼續沿用,但是名稱修改,由assert.h改成<cassert>
(2).其它函式庫(不是以c開頭的標頭檔),都是C++獨有的函式庫
(3).安裝chrom的字典工具:|->更多工具->擴充功能->左上角主選單->開啟chrome線上應用程式商店->勾選:google製作,免費->搜尋:google dictionary->安裝->到chrome右上擴充功能->固定google dictionary->extension option->my language=chinese->勾選:Pop-up definitions:反白單字翻譯,ctrl+拖曵整段翻譯
Function and header 35-1.函式 (Function) 與標頭檔(影片) 35-1.函式 (Function) 與標頭檔(網頁) 程式碼35-1n 成果圖片
  35-2.函式 (Function) 與標頭檔(影片) 35-2.函式 (Function) 與標頭檔(網頁) 程式碼35-mian程式碼35-myshow_h 成果圖片
  36.傳遞參數的函式Function(影片) 36.傳遞參數的函式Function(網頁) 程式碼36 成果圖片
  37.傳遞參數函式與標頭檔(影片) 37.傳遞參數函式與標頭檔(網頁) 程式碼37-mian程式碼37-myheader 成果圖片
  38.呼叫函式時參數傳遞的記憶體變化:傳值,傳址呼叫(影片) 38.呼叫函式時參數傳遞的記憶體變化:傳值,傳址呼叫(網頁) 程式碼38 成果圖片
 

 
chp(6)指標變數:
指標Pointer 39.指標Pointer是一種變數(專門記錄記憶體位址)(影片) 39.指標Pointer是一種變數(專門記錄記憶體位址)(網頁) 程式碼39 成果圖片
  40.指派指標變數的三種方法,delete,const(影片) 40.指派指標變數的三種方法,delete,const(網頁) 程式碼40 成果圖片
  41.函式傳遞指標變數(二種方法)(影片) 41.函式傳遞指標變數(二種方法)(網頁) 程式碼41 成果圖片
  42.函式的傳值呼叫,傳址呼叫(影片) 42.函式的傳值呼叫,傳址呼叫(網頁) 程式碼42 成果圖片
  43.函式的傳回值是個指標變數(影片) 43.函式的傳回值是個指標變數(網頁) 程式碼43 成果圖片
  44.函式的傳回值是個const指標變數(影片) 44.函式的傳回值是個const指標變數(網頁) 程式碼44 成果圖片
用指標變數來取代陣列 45.動態陣列:用指標變數來取代陣列(可以delete記憶體配置)(影片) 45.動態陣列:用指標變數來取代陣列(可以delete記憶體配置)(網頁) 程式碼45 成果圖片
  46.函式傳遞的陣列參數:可用*指標,或陣列[](影片) 46.函式傳遞的陣列參數:可用*指標,或陣列[](網頁) 程式碼46 成果圖片
  47.指標的指標,void的指標,指標的陣列(影片) 47.指標的指標,void的指標,指標的陣列(網頁) 程式碼47 成果圖片
  48.學習指標的最大應用:呼叫API函數時的傳遞參數 48.學習指標的最大應用:呼叫API函數時的傳遞參數 程式碼48 成果圖片
 

 
chp(7)參考變數:
  參考Reference 50.參考Reference(影片) 50.參考Reference(網頁) 程式碼50 成果圖片
  51.學習參考的最大應用:呼叫API函數時的傳遞參數 51.學習參考的最大應用:呼叫API函數時的傳遞參數 程式碼51 成果圖片
  52.函數傳遞參數為參考Reference(影片) 52.函數傳遞參數為參考Reference(網頁) 程式碼52 成果圖片
  53.函數return值為參考物件變數(影片) 53.函數return值為參考物件變數(網頁) 程式碼53 成果圖片
  54.函數return值為參考物件指標變數(影片) 54.函數return值為參考物件指標變數(網頁) 程式碼54 成果圖片
 

 
chp(8)結構變數
  結構struct 55.C語言的結構(struct)與函式導向(影片) 55.C語言的結構(struct)與函式導向(網頁) 程式碼55 成果圖片
  56.結構(struct)的指標(影片) 56.結構(struct)的指標(網頁) 程式碼56 成果圖片
  57.結構(struct)的參考(影片) 57.結構(struct)的參考(網頁) 程式碼57 成果圖片
  58.函數的傳遞參數:用一般結構變數(影片) 58.函數的傳遞參數:用一般結構變數(網頁) 程式碼58 成果圖片
  59.函數的傳遞參數:用指標結構變數(影片) 59.函數的傳遞參數:用指標結構變數(網頁) 程式碼59 成果圖片
  60.函數的傳遞參數:用參考結構變數(影片) 60.函數的傳遞參數:用參考結構變數(網頁) 程式碼60 成果圖片
  61.用結構型別宣告返迴型別與陣列(影片) 61.用結構型別宣告返迴型別與陣列(網頁) 程式碼61 成果圖片
 

 
chp(9)日期時間:用C++的time.h運算日期時間
  日期時間:用C++的time.h運算日期時間 62.time_t 與取得現在時間(影片) 62.time_t 與取得現在時間(網頁) 程式碼62 成果圖片
  63.列印現在時間與認識 struct tm(影片) 63.列印現在時間與認識 struct tm(網頁) 程式碼63 成果圖片
  64.格式化日期時間(影片) 64.格式化日期時間(網頁) 程式碼64 成果圖片
  65.運算日期時間(影片) 65.運算日期時間(網頁) 程式碼65 成果圖片
 
 
chp(10)物件導向的基本觀念
  物件導向的基本觀念 66.物件導向的基本觀念(影片) 66.物件導向的基本觀念(網頁) 程式碼66 成果圖片
  67.類別class,物件變數的宣告與使用(影片) 67.類別class,物件變數的宣告與使用(網頁) 程式碼67 成果圖片
  68.物件指標的宣告與使用(影片) 68.物件指標的宣告與使用(網頁) 程式碼68 成果圖片
  69.物件變數參考與物件指標參考(影片) 69.物件變數參考與物件指標參考(網頁) 程式碼69 成果圖片
 
 
chp(11)物件進階:封裝與繼承
  物件進階:封裝與繼承 87.什麼是封裝? 為什麼要封裝?(影片) 87.什麼是封裝? 為什麼要封裝?(網頁) 程式碼87 成果圖片
  88.使用 private 與 public 實作一個嚴謹的封裝(影片) 88.使用 private 與 public 實作一個嚴謹的封裝(網頁) 程式碼88 成果圖片
  89.什麼是繼承? 為什麼要繼承? protected 的介紹(影片) 89.什麼是繼承? 為什麼要繼承? protected 的介紹(網頁) 程式碼89 成果圖片
  90.子類別中應該作和不要作的事 與 protected的真正用法(影片) 90.子類別中應該作和不要作的事 與 protected的真正用法(網頁) 程式碼90 成果圖片
  91.建構函式(影片) 91.建構函式(網頁) 程式碼91 成果圖片
  92.this 到底是指向類別還是物件(影片) 92.this 到底是指向類別還是物件(網頁) 程式碼92 成果圖片
 
 
chp(12)物件進階:多型與虛擬函式,overloading重載運算子
  物件進階:多型與虛擬函式,overloading重載運算子 93.多型Polymorphism,與虛擬函數virtual(影片) 93.多型Polymorphism,與虛擬函數virtual(網頁) 程式碼93 成果圖片
  93-2.多型Polymorphism,與動態繫結(dynamic binding)(影片) 93-2.多型Polymorphism,與動態繫結(dynamic binding)(網頁) 程式碼93-2 成果圖片
  94.overloading重載運算子(影片) 94.overloading重載運算子(網頁) 程式碼94 成果圖片
  95_1.什麼是 is - a ? 跟 has - a 有什麼區別 ?(影片) 95_1.什麼是 is - a ? 跟 has - a 有什麼區別 ?(網頁) 程式碼95_1 成果圖片
 
 
chp(13)C的字串,與C++ 的字串運算
  C的字串,與C++ 的字串運算 70.C語言:字元陣列與字元指標的宣告(影片) 70.C語言:字元陣列與字元指標的宣告(網頁) 程式碼70 成果圖片
  71.C語言:char * 參數與返迴型別的應用與函式 strcpy 介紹(影片) 71.C語言:char * 參數與返迴型別的應用與函式 strcpy 介紹(網頁) 程式碼71 成果圖片
  72.void * 參數與返迴型別的應用與函式 memcpy 介紹(影片) 72.C語言:void * 參數與返迴型別的應用與函式 memcpy 介紹(網頁) 程式碼72 成果圖片
  73.const char * 返迴型別的應用與函式 strcat, strcmp, strstr 及 strtok 介紹(影片) 73.const char * 返迴型別的應用與函式 strcat, strcmp, strstr 及 strtok 介紹(網頁) 程式碼73 成果圖片
  74.用C寫範例-字元數量統計(影片) 74.用C寫範例-字元數量統計(網頁) 程式碼74 成果圖片
  75.範例:登入(影片) 75.範例:登入(網頁) 程式碼75 成果圖片
  76.範例:身份證字號檢測(影片) 76.範例:身份證字號檢測(網頁) 程式碼76 成果圖片
 
 
chp(14)C++字串:string物件變數
  C++字串:string物件變數 77.C++語言:string 物件變數與物件指標(影片) 77.C++語言: string 物件變數與物件指標(網頁) 程式碼77 成果圖片
  78.string 物件的成員函式1:字串的指派與串接(影片) 78.string 物件的成員函式1:字串的指派與串接(網頁) 程式碼78 成果圖片
  79.string 物件的成員函式2:字串的插入、刪除、取代與搜尋(影片) 79.string 物件的成員函式2:字串的插入、刪除、取代與搜尋(網頁) 程式碼79 成果圖片
  80.string 物件的成員函式3:將字串依指定內容切割後置入陣列(影片) 80.string 物件的成員函式3:將字串依指定內容切割後置入陣列(網頁) 程式碼80 成果圖片
  81.string 物件的成員函式4:字串的取代,比對與字串陣列的排序(影片) 81.string 物件的成員函式4:字串的取代,比對與字串陣列的排序(網頁) 程式碼81 成果圖片
  82.string 標頭檔中與字串運算相關的函式(影片) 82.string 標頭檔中與字串運算相關的函式(網頁) 程式碼82 成果圖片
  83.範例:字元數量統計(影片) 83.範例:字元數量統計(網頁) 程式碼83 成果圖片
  84.範例:登入(影片) 84.範例:登入(網頁) 程式碼84 成果圖片
  85.範例:身份證字號檢測1(影片) 85.範例:身份證字號檢測1(網頁) 程式碼85 成果圖片
  86.範例:身份證字號檢測2(影片) 86.範例:身份證字號檢測2(網頁) 程式碼86 成果圖片
 
 
chp(15)物件陣列
  物件陣列 95.物件陣列 95.物件陣列 程式碼95 成果圖片
  96.物件陣列的查詢 96.物件陣列的查詢 程式碼96 成果圖片
 
 
chp(16)字串陣列:(函數傳遞參數,傳回值)
  字串陣列
(函數傳遞參數,傳回值)
97.字串陣列的函數傳遞參數 97.字串陣列的函數傳遞參數 程式碼97 成果圖片
 
 
chp(17)容器變數,資料結構變數(vector,list,iterator)
  容器變數,資料結構變數(vector,list,iterator) 400.vector動態陣列與iteraor(影片) 400.vector與iteraor(網頁) 程式碼400 成果圖片
  401.list資料鏈接與iteraor(影片) 401.list資料鏈接與iteraor(網頁) 程式碼401 成果圖片
  402.用動態陣列vector+struct雙參數,來排序 402.用動態陣列vector+struct雙參數,來排序(網頁) 程式碼402 成果圖片
 
 
chp(18)自創API函數:文字
  自創API函數:文字 100.分割文字 101.文字排序(小到大) 102.搜尋字串 103.取代字串
  104.轉大寫,轉小寫 105.文字排序(大到小) 106. 107.
 
 
chp(19)自創API函數:數值
  自創API函數:數值 200.開根號 201.整數排序(小到大,小到大) 202.double排序(小到大,小到大) 203.產生1~6亂數
 
 
chp(20)自創API函數:時間
  自創API函數:時間 300.顯示測試效率(運算時間)
 
 
chp(22)
 
 
chp(23)
 
a