|
課程摘要 |
第一週 (2/19) |
-
課程大綱, 參考書籍, 線上資料,
-
C 語法複習 (basic data type, array type, for/while/break/continue,
if/switch control statements, struct, typedef, pointers)
-
assignment #1 brief introduction
|
第二週 (2/26) |
-
demonstration of VC 6, IDE, command line (vcvars32.bat, cl), UNIX: gcc, g++
-
typedef usages
-
C++ as a better C:
-
single line comment,
-
struct, enum, union tags are type names,
-
new iostream library (object oriented usage, type sensitive usage),
-
cooperating with stdio (ios::sync_with_stdio(),
-
variable definition position,
-
definition vs. declaration (variable and function),
-
reference,
-
function signature and name mangling,
-
parameter defaults
|
第三週 (3/5) |
-
繳交第一次作業
-
C++ as a better C:
-
stricter typing system: void, char literal, enum
-
something goes on before main()
-
reserve words
-
default parameter promotion rules, samples
-
inline replace macro, sample inline functions
-
pointer assignment can change values
-
another memory allocation scheme
-
Testing codes
-
下星期小考 Chap 3 課本內容
|
第四週 (3/12) |
-
講解 3 bags of balls C 程式
-
講解 3 bags of balls C++ 程式
-
強調物件導向程式中的物件架構
-
以 3 Bags C++ 程式為例印證以物件導向來製作程式的特點 (模型化, 封裝性)
-
介紹以物件導向來製作程式的好處 (程式需求修改, 多人合作, 重用)
-
介紹多檔案的 C/C++ 編譯及連結方式 (#ifndef #define #endif)
-
線上操作多檔案製作 C++ 程式
|
第五週 (3/19) |
-
Testing: assert(), crc32, unit testing
-
記憶體遺失偵測 (afx.h, MFC lib, 至少使用一次 new/delete)
-
Common C/C++ Memory Errors
-
class 基本語法介紹
-
overview of C++ (What is different in Object Oriented Programming from procedural programming?),
Chapter 1: abstraction, encaptulation, interface, composition and aggregation,
inheritance, polymorphism slides
|
第六週 (3/26) |
-
課本第一章(剩餘部份), 第二章
-
UML 基本語法介紹, 參考資料
-
class 語法進一步介紹,成員函式之存取與建構元/解構元函式
-
作業二
|
第七週 (4/2) |
-
課本第二章
-
namesapce:
definitions
1,
2,
declarations
3,
4,
Test
-
An error sample WaveRecord.h, WaveRecord.cpp
-
課本第四章
-
課本第五章
|
第八週 (4/9) |
-
課本第六章 Initialization and Cleanup
-
繳交作業二書面報告
-
課本第十章 Name Control
|
第九週 (4/16) |
-
課本第七章 Function Overloading and Default arguments
-
課本第八章 Constant
|
第十週 (4/23) |
-
課本第十一章 Reference and the copy ctor
-
Quiz #2
|
第十一週 (4/30) |
-
課本第十二章 Operator overloading
-
第三次作業說明
|
第十二週 (5/7) |
-
課本第十二章 Operator overloading
|
第十三週 (5/14) |
繳交作業三
課本第十二章 Operator overloading - type conversion
單元測試: 以 Integer 類別為例
圖形化介面: 請嘗試下載IntegerUI_1920512b.rar,
並且依照上課 demo 的方法把自己的 Integer 類別結合進去
|
第十四週 (5/21) |
說明第四次程式作業
課本第九章 Inline Function
課本第十四章 Inheritance:
Basic syntax, semantics, object layout
public inheritance vs. private inheritance
redefining a function in base class
extending the function of a class
upcast and downcast
|
第十五週 (5/28) |
課本第十四章 Inheritance:
interface reuse/ old code call new code
improper inheritance and substitutibility
delegation vs. inheritance
polymorphism
polymorphic functions
polymorphic pointers
virtual functions
static binding vs. dynamic binding (static linking vs. dynamic linking)
hiding vs. overriding
|
第十六週 (6/4) |
繳交第四次程式作業
|
第十七週 (6/11) |
|
第十八週 (6/18) |
期末考試
|