C++面向對象程序設計實踐教程 | 如何做好生意 - 2024年11月
C++面向對象程序設計實踐教程
用C++語言編程就是用C++語言描述和表達周圍的現實世界。按照描述和表達現實世界的需要,李長榮主編的《C++面向對象程序設計實踐教程》共分為12 章進行講解。第1-7章為結構化編程,第8-11章為類和對象編程,第12章為C++標准庫中的容器和算法框架。本書並沒有羅列C++語言語法,而是通過實例仔細分析所有概念背后的基礎思想、原理和技術,使讀者從中獲得學習的樂趣。本書適合從未有過編程經驗但願意努力學習程序設計的初學者。如果認真完成本書的學習,那麼在程序設計領域已經有一個好的開始,可以寫相對簡單的程序,並能讀復雜的程序,為進一步的學習打下良好的理論和實踐基礎。
第1章 C++語言概述 1.1 為什麼要學習程序設計 1.2 C++語言歷史 1.3 C++語言特點 1.4 C++語言程序設計風格 1.4.1 結構化程序設計 1.4.2 面向對象程序設計 1.4.3 泛型程序設計 1.5 標准庫 1.5.1 標准庫簡介 1.5.2 標准模板庫 習題第2章 第一個C++程序 2.1 程序 2.2 入門實例 2.3 實例分析 2.3.1 注釋 2.3.2 使用空白字符 2.3.3 包含其他文件 2.3.4 命名空間 2.3.5 定義main()函數 2.3.6 使用標准輸入和輸出 2.3.7 字符串 2.3.8 語句的終止 2.3.9 從main()函數返回值 2.4 編譯C++語言程序 2.5 鏈接 2.6 編程環境 2.7 家庭賬務管理系統——啟動界面 習題第3章 數據類型 3.1 數據類型 3.1.1 整數類型 3.1.2 浮點類型 3.1.3 字符類型 3.1.4 布爾類型 3.1.5 空類型 3.1.6 枚舉類型 3.2 關鍵字 3.3 常量 3.3.1 什麼是常量 3.3.2 為什麼需要常量 3.3.3 使用常量 3.4 變量 3.4.1 什麼是變量 3.4.2 變量的定義 3.4.3 變量的命名 3.4.4 變量的賦值 3.5 結構體 3.5.1 結構體類型的定義和初始化 3.5.2 結構體變量的使用 3.6 家庭賬務管理系統——用戶信息 習題第4章 控制語句 4.1 控制結構 4.2 選擇語句 4.2.1 布爾表達式和關系運算符 4.2.2 單路選擇if語句 4.2.3 雙路選擇if語句 4.2.4 多路選擇if語句 4.2.5 switch選擇語句 4.2.6 選擇結構的條件表達式 4.3 循環語句 4.3.1 for循環 4.3.2 for循環的嵌套 4.3.3 無限循環 4.3.4 while循環語句 4.3.5 do-while循環語句 4.3.6 幾種循環方式的比較 4.4 轉向語句 4.4.1 break語句 4.4.2 continue語句 4.4.3 goto語句 4.5 家庭賬務管理系統——主菜單 習題第5章 函數 5.1 函數簡介 5.2 C++程序組件 5.3 函數命名 5.4 void函數的聲明、定義和調用 5.5 返回值函數 5.6 參數傳遞 5.6.1 形參和實參 5.6.2 向函數傳遞參數 5.6.3 值傳遞和引用傳遞 5.6.4 傳遞多個參數 5.7 內聯函數 5.8 函數重載 5.9 家庭賬務管理系統——設置窗口標題函數 習題第6章 數組與字符串 6.1 數組的概念 6.2 數組的聲明 6.3 數組的初始化 6.4 數組作為函數的參數 6.5 二維數組的聲明與初始化 6.6 二維數組作為函數參數 6.7 字符串 6.7.1 類C字符串 6.7.2 string字符串 6.8 家庭賬務管理系統的系統登錄 習題第7章 指針 7.1 指針的概念 7.2 變量與指針 7.3 數組與指針 7.4 指針與引用 7.5 函數與指針 7.5.1 作為函數參數的指針 7.5.2 函數指針 7.5.3 指針函數 7.6 使用const修飾指針 7.7 動態內存分配 7.8 鏈表 習題第8章 類和對象 8.1 面向過程程序設計和面向對象程序設計 8.2 類和對象的關系 8.3 聲明類類型 8.3.1 使用struct聲明類和使用class聲明類 8.3.2 對類的成員進行訪問 8.3.3 類的get和set方法 8.4 類的成員函數 8.4.1 成員函數的性質 8.4.2 在類外定義成員函數 8.4.3 inline成員函數 8.5 類聲明與成員函數定義分離 8.6 構造函數 8.6.1 什麼是構造函數 8.6.2 對象的初始化 8.6.3 構造函數的作用 8.6.4 帶參數的構造函數 8.6.5 用參數初始化表對數據成員初始化 8.6.6 構造函數的重載 8.6.7 使用默認參數值的構造函數 8.7 析構函數 8.8 公有數據的保護 8.8.1 常對象成員 8.8.2 常對象 8.9 靜態成員 8.9.1 靜態數據成員 8.9.2 靜態成員函數 8.10 示例程序:時間標記類 8.11 家庭賬務管理系統——用戶實體類 習題第9章 繼承與派生 9.1 繼承和派生的概念 9.2 派生類的聲明方式 9.3 派生類的繼承方式 9.4 派生類的構造函數和析構函數 9.4.1 派生類的構造函數 9.4.2 派生類的析構函數 9.5 使用繼承必須滿足的邏輯關系 9.6 繼承在軟件開發中的重要意義 9.7 家庭賬務管理系統——添加賬目及賬目查詢 習題第10章 多態性和虛函數 10.1 多態性的概念 10.2 虛函數 10.2.1 虛函數的作用 10.2.2 運行期綁定和編譯期綁定 10.2.3 虛函數使用方法 10.2.4 構造函數與析構函數 10.2.5 什麼情況下聲明虛函數 10.3 純虛函數和抽象類 10.3.1 純虛函數 10.3.2 抽象類 習題第11章 運算符重載 11.1 運算符重載的概念 11.2 運算符重載的方法 11.3 基本運算符重載 11.4 友元函數 11.5 賦值運算符重載 11.6 輸入與輸出運算符的重載 11.7 特殊運算符的重載 11.7.1 下標運算符的重載 11.7.2 自增與自減運算符的重載 11.7.3 類型轉換運算符的重載 習題第12章 模板與STL 12.1 為什麼使用模板 12.2 函數模板 12.3 類模板 12.4 STL 12.4.1 STL的組成 12.4.2 在程序中使用STL 12.5 容器 12.5.1 vector容器 12.5.2 list容器 12.5.3 set容器 12.5.4 map容器 12.6 算法 12.6.1 非變序型算法 12.6.2 變序型算法 12.6.3 排序算法 12.6.4 數值算法 12.7 家庭賬務管理系統——STL的應用 12.7.1 STL的vector的應用 12.7.2 用戶賬目信息及個人信息的持久化保存 習題