《C++程式設計(面向對象進階)》,北京郵電大學提供的慕課課程,授課教師是崔毅東 、 楊談。
基本介紹
- 中文名:C++程式設計(面向對象進階)
- 提供院校:北京郵電大學
- 類別:慕課
- 授課教師:崔毅東 、 楊談
課程概述,課程大綱,
為什麼要學這門課程?
學C語言後想進階學C++;
學Java後想了解C++這個同門大佬;
聽說C++ 11/14/17/20被稱為“Modern C++”,想看看它和“Classic C++”有啥不同;
想學習編碼規範以寫出【好看】的代碼。
這門課程要求:
你已有編程基礎,知道數據類型、分支循環、數組等語言要素;
你已經寫過代碼,想看看C++能否多快好省地編程式。
這門課程不適合:
從未接觸過編程(可以先學C語言入門);
希望用三行代碼改變世界(建議去學Python);
認為Java能搞定一切(奇蹟和災難都在JVM中);
非IT專業但聽說編程是職場必備能力(可以先學解釋型語言,更易入門)。
必須要學C++的理由:
做人工智慧研究,想要深入底層;比如TensorFlow的核心是用C++寫的;
做遊戲開發,包括端游和網遊後台,以發揮計算機的全部性能,需要C++;
做智慧型硬體、嵌入式或硬體驅動開發;C++會提供更多工具,生產效率更高;
你喜歡。
必須要學本課程的理由:
學了C++,但是希望學習C++11~C++20等新標準的特性及編程範式;
學了C++,但是還在用typedef,或者認為 for(auto i : array)是寫錯了;
定義變數時輪流使用26個英文字母,不夠的話再加上下劃線 (⊙_⊙)?
課程內容更新安排:
第一期課程主要介紹C++基礎及C++11~17的功能性增強;
第二期課程補充一些C++17的基礎特性
第三期課程繼續補充C++11~17中一些較難理解的特性,並選擇少量C++20的新增特性
第四期課程繼續補充C++課下實驗內容,供學有餘力同學參考使用
第1單元:C++概覽
第01節:C++編程範式與現代C++標準
第02節:學習C++:參考書和編程環境
第03節:Visual Studio集成開發環境
第04節:Eclipse CDT集成開發環境
第05節:如何快速學習本課程?
第06節:常見問題解答
第1單元測驗
作業1:測試你的C++編譯器支持的標準
作業2:【選做】安裝Eclipse For C/C++或者Eclipse CDT版本
第2單元:C++程式基礎
第00節:單元導學
第01節:C++原始碼和編碼規範
第02節:Aloha World代碼示例
第03節:名字空間
第04節:編譯C++程式
第05節:處理錯誤
第06節:輸入和輸出
第2單元測驗
第2單元作業1:線上編程-輸入與輸出
第2單元作業2:線上編程-名字空間
第3單元: C語法的增強及對應的C++11特性
第00節:單元導學
第01節:引用、[C++11]空指針與動態記憶體分配
第02節:數據類型與轉換、[C++11]列表初始化
第03節:[C++11]自動類型推導:類型系統、auto與decltype
第04節:簡化的C++記憶體模型
第05節:常量與指針
第06節:特殊函式:重載、默認參數值與內聯
第07節:[C++11]基於範圍的for循環
第08節:[C++17]帶有初始化器的if和switch語句
第3單元測驗
第3單元作業1:線上編程-引用作為函式參數
第3單元作業2:線上編程-重載函式
第4單元: 對象和類(基礎)
第00節:單元導學
第01節:用類創建對象
第02節:對象拷貝以及分離聲明與實現
第03節:對象指針、對象數組以及函式參數
第04節:抽象、封裝與this指針
第05節:[C++11]類數據成員的初始化
第06節:string類以及[C++11]std::array類
第4單元測驗
4.1. 線上編程-解析整數範圍
4.2. 線上編程-【選做】解析有干擾字元的整數範圍
4.3. 線上編程-遍歷對象數組
4.4 線上編程-創建Screen類
4.5 線上編程-【選做】帶有參數邊界檢查的Screen類
第5單元: 對象和類(高級)
第00節:單元導學
第01節:[C++11]斷言與常量表達式
第02節:代理構造、不可變對象與靜態成員
第03節:析構、友元與深淺拷貝
第04節:vector類和[C++14]字元串字面量
第05節:例子
第06節:[C++17]結構化綁定
第5單元測驗
1. 線上編程-代理構造函式1
2. 線上編程-代理構造函式2
3. 線上編程-【選做】Screen類的靜態成員與單例模式(難度:難)
4. 線上編程-【選做】Screen類的析構函式與完整的單例模式(難度:難)
第6單元: 繼承和多態
第00節:單元導學
第01節:繼承與構造
第02節:名字隱藏與重定義
第03節:覆寫與運行時多態
第04節:抽象類與動態類型轉換
第6單元測驗
1. 線上編程-繼承中的構造函式
2. 線上編程-繼承中的析構函式和靜態成員
3. 線上編程-多態和純虛函式
第7單元:檔案輸入輸出流
第00節:單元導學
第01節:[C++17]檔案系統(filesystem)
第02節:檔案I/O流的基本用法
第03節:格式化輸出與I/O流函式
第04節:二進制輸入輸出
第05節:隨機訪問檔案
第7單元測驗
1. 互評作業-讀寫檔案
第8單元:運算符重載
第00節:單元導學及準備知識
第01節:運算符重載與平面向量類
第02節:重載二元運算符和數組下標運算符
第03節:重載一元運算符
第04節:重載流操作運算符與類型轉換運算符
第05節:重載賦值運算符及其它總結
第8單元測驗
8.1 線上編程-關係運算符重載
8.2 線上編程-數組下標運算符重載
第9單元:異常處理
第00節:單元導學
第01節:異常處理概覽
第02節:異常匹配與內建異常類
第03節:自定義異常類與多重捕獲
第04節:[C++11]noexcept與異常傳播
第05節:重拋異常與異常的使用場景
單元作業說明
第9單元測驗
1. 線上編程-創建複數類,重載流運算符
2. 線上編程-修改複數類,重載加減法運算符
3. 線上編程-在複數的運算中,練習異常處理
第10單元:模板初步
第00節:單元導學
第01節:模板與泛型編程
第02節:函式模板
第03節:排序示例與泛型化
第04節:類模板
第05節:模板參數與模板繼承
第10單元測驗
10.1 線上編程-創建數組類模板
第11單元:標準模板庫介紹
第02節:STL容器
第04節:容器的更多用法
第03節:STL疊代器
2.線上編程-list與deque
1. 線上編程-vector 與 sort
第01節:標準模板庫基礎
第00節:單元導學