2002 Spring 課程內容摘要

  1. 91/02/20 (三): 2 張講義
    課程大綱
    Office Hour, 助教
    作業繳交原則與方法

  2. 91/02/26 (二):
    複習 C 語言中 struct 語法
    測驗 array / loop / struct

  3. 91/02/27 (三): 1 張講義, 發回考卷
    講解 struct / loop control structure
    簡介 class 與 struct 之語法差異, C++ 中比 C 增加最重要的東西
    課本 page 1 - page 46 說明

  4. 91/03/05 (二):
    講解 3 bags of balls C 程式
    講解 3 bags of balls C++ 程式
    強調物件導向程式中的物件架構

  5. 91/03/06 (三):
    以 3 Bags C++ 程式為例介紹以物件導向來製作程式的特點 (模型化, 封裝性)
    介紹以物件導向來製作程式的好處 (程式需求修改, 多人合作, 重用)
    介紹多檔案的 C/C++ 編譯及連結方式 (#ifndef #define #endif)
    每星期五 (03/08) 1:00-2:00 在 PC 教室複習 C 語法

  6. 91/03/12 (二): 1 張講義
    簡介 Visual C++ 界面
    線上操作多檔案製作 C++ 程式

  7. 91/03/13 (三):
    makefile 說明
    Makefile 線上說明
    C++ ... a better C : function prototypes
    程式作業一說明
    程式格式要求

  8. 91/03/19 (二) :
    程式作業一說明: assert(), crc32, unit testing
    記憶體遺失偵測 (afx.h, MFC lib, 至少使用一次 new/delete)

  9. 91/03/20 (三):
    C++ ... a better C : (C++ without classes)
             comments
             struct, enum, union
             iostream.h 
             variable definition position 
             reference 
             function signature 
        

  10. 91/03/26 (二)
    繳交作業一
    function default parameters *
    function overloading (static polymorphism)
    作業中大家遇見的問題

  11. 91/03/27 (三)
    stronger typing system
    program starts before the first executable statements in main()
    more reserved word
    inline functions *
    pointer assignment can change pointer values
    new/delete/delete[] and multidimensional new pp. 295-310
    * 為測試程式請自行閱讀

  12. 91/04/09 (二):
    Common C/C++ Memory Errors
    物件設計作業
    物件定義 -- a better array

  13. 91/04/10 (三) 本日為大學部申請入學口試, 計劃調課至 ???

  14. 91/04/12 (五) Office Hour
    Win NT/2000 console mode API
    ANSI terminal control code

  15. 91/04/16 (二):正常上課 tentative
    a better array (continued):
    this pointer pp. 250-274
    第二次程式作業

  16. 91/04/17 (三):正常上課
    review static in C pp. 140-152
    static data member: class variable (in contrast to instance variable)
    static member function: class method
    ctor pp. 274-282
    initialization list: always use it, several places where you must use it Note: the execution sequence is the order of definition instead of the initialization list
    dtor pp.283-295

  17. 91/04/23 (二):
    copy ctor X(X&)
    class level encaptulation
    const function (review const) pp. 203-226
    繳交物件設計作業
    課本 page 396-406
    Quiz #1

  18. 91/04/24 (三):
    more on copy ctor for struct
    Visibility vs Access Encaptulation
    private ctor
    nested class pp. 354-358

  19. 91/04/30 (二):
    basic object design
    繳交第二次程式作業

  20. 91/05/01 (三):
    UML class diagram, design of the List and CDTitle in the homework
    friend class and friend function pp. 170-186
    return object reference pp. 239-250
    list iterator

  21. 91/05/08 (二) tentative:
    more on UML class diagram and list iterator pattern 物件分工的基本設計原則
    composition and delegation

  22. 91/05/09 (三) tentative:
    operator overloading pp.358-395
    function pointer pp. 406-413
    namespace pp. 413-420
    inheritance pp. 426-439

  23. 91/05/14 (二) tentative:
    encaptulation pp. 439-445
    interface reuse/ old code call new code

  24. 91/05/15 (三) tentative:
    improper inheritance and substitutibility
    public inheritance vs. private inheritance 445-448
    redefining a function in base class pp. 448-452
    extending the function of a class pp. 452-459
    delegation vs. inheritance pp. 459-462
    polymorphism pp. 465-469
    polymorphic functions pp. 469-472
    polymorphic pointers pp. 472-476

  25. 91/05/21 (二) tentative:
    upcast and downcast
    virtual functions pp. 476-485
    static binding vs. dynamic binding (static linking vs. dynamic linking)

  26. 91/05/22 (三) tentative:
    hiding vs. overriding
    virtual class and pure virtual function pp. 485-488
    more characteristics of a virtual function pp. 488-493
    virtual function table pp. 493-504
    interface inheritance pp. 504-516
    state diagram

  27. 91/05/28 (二) tentative:
    multiple inheritance pp. 522-526
    name collision in multiple inheritance pp. 526-527
    ctor and dtor pp. 527-532
    pure virtual class 532-542

  28. 91/05/29 (三) tentative:
    class template
    function template

  29. 91/06/04 (二) tentative:
    exception

  30. 91/06/05 (三) tentative:
    RTTI

  31. 91/06/11 (二) tentative:
    Advanced objects

  32. 91/06/12 (三) tentative:

  33. 91/06/19 (三): 10:25-12:05 期末考

new materials

  1. CppUnit Test Framework

  2. Refactoring samples

  3. OOP 程式設計的基本原則

  4. UML tutorial

C++ 程式設計課程 首頁

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