將數據(屬性)與操作(方法)封裝為「對象」。使用者只需知道「按鈕」(公有接口),無需關心內部「化學實驗」(實現細節)。
基本類型(int/float)只存數值。string 內部管理:動態字符數組、長度、容量、內存分配/釋放、拷貝構造、賦值運算、SSO(小字符串優化)等。
電腦只識別數字。ASCII 表建立數字↔字符映射:'A'=65, 'a'=97。char 類型存單字符(1 字節),字符串本質是 char 數組。
| 操作 | 代碼示例 | 說明 |
|---|---|---|
| 創建初始化 | string s("Hello"); | 構造函數或賦值 |
| 修改內容 | s = "World"; | 自動內存重分配 |
| 拼接 | s3 = s1 + " " + s2; | 運算符重載 |
| 比較 | if (s1 == s2) | 逐字符比較 |
| 長度 | s.size() | 返回字符數 |
| 清空 | s.erase(); | 等同 s = "" |
| 子串 | s.substr(3); / s.substr(2,4) | 從索引 3 到末尾 / 索引 2 長度 4 |
| 下標訪問 | s[3] | 返回第 4 個字符 |
string s = "Hello"; s = "How are you?"; // 一行代碼背後: // 1. 檢查原容量是否足夠 // 2. 不夠則分配新內存 // 3. 拷貝新內容 // 4. 釋放舊內存 // 5. 更新長度、容量指標
object.method()「掀起『類』的蓋頭來(一)」,學習自定義類、構造函數、訪問控制、封裝實現。