C++ 沒有想像那麼難
03:28:32
課程範例
00:33
安裝寫程式的軟體
01:59
新增、執行及開啟舊專案的方法
02:41
將 C++ 標準切換為 C++ 20 (或最新標準)
01:16
註解
01:39
程式執行進入點 main
01:02
讓我們來顯示文字吧
04:41
整數型別
14:27
浮點數型別
05:02
bool 型別
03:59
字元型別
13:45
const
01:37
array
12:52
字元陣列與字串
06:26
算術運算子
13:39
位元運算子
09:24
整數的二進位表示法
12:22
位元移位運算子
05:20
比較運算子
05:01
邏輯運算子
05:56
邏輯運算子優先權
04:21
邏輯運算子 && 與 || 的 short-circuiting 機制
02:13
if / else if / else
04:45
expression ? expression : expression
03:32
if init statement (C++17)
06:34
while
02:38
do while
02:07
for
02:48
range-based for (C++11)
01:58
break
04:55
continue
switch
04:28
switch init statement (C++17)
02:12
auto (C++11)
04:46
decltype (C++11)
01:49
指標是什麼?
07:02
從指標讀寫值
04:43
陣列與記憶體位址
03:40
一維陣列與指標
06:14
多維陣列
05:35
二維陣列與指標
08:53
三維陣列與指標
06:28
參考是什麼?
02:27
non-const reference 與 const reference
03:44
最簡單的函式
02:43
函式參數
03:15
函式回傳值
03:24
return
03:19
函式參數預設值
02:37
main
07:06
function overloading
02:33
函式指標
03:36
auto 宣告函式指標
02:23
傳陣列給函式
06:24
new / delete
03:38
new [] / delete []
enum
04:09
enum class
01:24
raw string literals (C++11)
02:06
std::string
03:25
vs2022 使用 string 顯示 utf8 字串不亂碼 (可跳過)
08:15
struct
class
05:50
const 成員函式
介面與實作分離
05:04
建構子
06:04
解構子
copy constructor
11:46
this
02:26
copy assignment
06:54
copy assignment 的回傳值型別
05:33
move constructor
06:46
move assignment
05:32
善用別人寫好的 class
14:06
具名的右值引用是左值
06:41
call by reference
03:03
static member
03:57
繼承
08:00
存取權限 public / protected / private
03:52
derived class 隱藏 base class 的同名成員函式
05:10
虛擬函式
04:40
虛擬函式與 override
02:21
虛擬函式好用在哪?
05:43
虛擬解構子
03:45
避免 new 及 delete 的顯式使用
04:29
final
explicit
08:10
friend
03:12
純虛擬函式
05:36
寫 class 要注意的 8 個地方
C++ 節省記憶體小妙招
05:49
union
04:04
typedef
02:40
using
03:33
volatile
05:16
goto
04:52
namespace
02:24
using namespace
02:34
digit separator (C++14)
01:27
designated initializers (C++20)
03:34
強制轉型
02:18
static_cast
const_cast
07:15
dynamic_cast
06:02
reinterpret_cast
10:03
function template
03:42
C++ template metaprogramming 初相見
08:11
編譯期 for loop
10:08
計算編譯期排列 P(n, k)
編譯期 if
06:39
vector
08:52
map
10:12
如何選擇使用 map 或 unordered_map
03:00
初學者如何先避開指標
07:14
std::thread
25:28
什麼樣的函式會被 C++ compiler 當作協程
05:27
compiler 會對協程做哪些轉換?程式設計師又要提供哪部分的程式?
11:17
使用 co_return 程式設計師要提供那些函式?
05:11
使用 co_yield 傳值,程式設計師要提供什麼函式?
05:37
哪些函式不能作為協程?
03:55
協程參數與 promise_type 建構子的關係
07:01
取得 coroutine_handle 恢復協程運行
07:43
使用 RAII 管理協程資源 | final_suspend 不要回傳 suspend_never 原因之一
10:54
如何取得協程內的值並判斷協程是否結束 | final_suspend 不要回傳 suspend_never 原因之二
06:37
非侵入式改寫已有的成員函式為 coroutine,成員函式沒有回傳值,以 vector::push_back 為例
06:25
非侵入式改寫已有的成員函式為 coroutine,成員函式有回傳值,以 vector::size() 為例
03:49
協程生命週期範例之一,使用類別成員變數舉例
09:11
協程生命週期範例之二,使用 lambda 舉例
12:48
co_await 自己定義 Awaiter,不一定要使用標準函式庫提供的 suspend_never 或 suspend_always
05:19
co_await 自定 Awaiter 之 await_suspend 的三種回傳型態
09:56
co_await expr 兩段式轉換出 awaiter,第一段轉換 promise.await_transform(expr)
07:34
co_await expr 兩段式轉換出 awaiter,第二段轉換 awaitable.operator co_await()
協程的例外處理機制
12:03
協程如何跟 C API 溝通?
執行到條件成立才中斷
01:50
Hello, socket!
16:00
server 端如何從 client 端接收資料?
07:23
使用 RAII 技術處理 socket 的資源釋放
06:42
處理收資料 recv 函式的回傳值
12:09
處理送資料 send 函式的回傳值
05:47
讓 server 可以繼續的服務下一個 client
07:41
讓 server 可以同時服務多個 client
05:30
使用 raylib 開始寫一個小遊戲,raylib 基本程式執行邏輯介紹
14:25
使用 raylib 畫出矩形,設定 FPS
09:53
使用 raylib 載入及畫出圖檔
使用 raylib 處理滑鼠點擊事件,記憶遊戲翻牌
12:45
用 raylib 來自己寫 Timer class
07:28
卡片猜對猜錯處理,C++ raylib
12:05
C++ raylib 如何顯示中文字?
06:12
C++ raylib 輸出象棋用圖片
11:20
K 公司題目
R 公司題目
指標前置運算及後置運算考題
04:13