2003 Spring 課程內容摘要

課程摘要
第一週 (2/19)

  1. 課程大綱, 參考書籍, 線上資料,

  2. C 語法複習 (basic data type, array type, for/while/break/continue, if/switch control statements, struct, typedef, pointers)

  3. assignment #1 brief introduction
第二週 (2/26)

  1. demonstration of VC 6, IDE, command line (vcvars32.bat, cl), UNIX: gcc, g++

  2. typedef usages

  3. 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)

  1. 繳交第一次作業

  2. 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

  3. Testing codes

  4. 下星期小考 Chap 3 課本內容
第四週 (3/12)

  1. 講解 3 bags of balls C 程式

  2. 講解 3 bags of balls C++ 程式

  3. 強調物件導向程式中的物件架構

  4. 以 3 Bags C++ 程式為例印證以物件導向來製作程式的特點 (模型化, 封裝性)

  5. 介紹以物件導向來製作程式的好處 (程式需求修改, 多人合作, 重用)

  6. 介紹多檔案的 C/C++ 編譯及連結方式 (#ifndef #define #endif)

  7. 線上操作多檔案製作 C++ 程式
第五週 (3/19)

  1. Testing: assert(), crc32, unit testing

  2. 記憶體遺失偵測 (afx.h, MFC lib, 至少使用一次 new/delete)

  3. Common C/C++ Memory Errors

  4. class 基本語法介紹

  5. 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)

  1. 課本第一章(剩餘部份), 第二章

  2. UML 基本語法介紹, 參考資料

  3. class 語法進一步介紹,成員函式之存取與建構元/解構元函式

  4. 作業二
第七週 (4/2)

  1. 課本第二章

  2. namesapce: definitions 1, 2, declarations 3, 4, Test

  3. An error sample WaveRecord.h, WaveRecord.cpp

  4. 課本第四章

  5. 課本第五章
第八週 (4/9)

  1. 課本第六章 Initialization and Cleanup

  2. 繳交作業二書面報告

  3. 課本第十章 Name Control
第九週 (4/16)

  1. 課本第七章 Function Overloading and Default arguments

  2. 課本第八章 Constant
第十週 (4/23)

  1. 課本第十一章 Reference and the copy ctor

  2. Quiz #2
第十一週 (4/30)

  1. 課本第十二章 Operator overloading

  2. 第三次作業說明
第十二週 (5/7)

  1. 課本第十二章 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) 期末考試

    C++ 程式設計課程 首頁

    製作日期: 12/24/2002 by 丁培毅 (Pei-yih Ting)
    E-mail: pyting@cs.ntou.edu.tw TEL: 02 24622192x6615
    海洋大學 理工學院 資訊科學系