/*
以下是 C++/OOP 课程的主题与时数。虽细分为 C++ 和 OOP 两个子题,
但上课时彼此有所融合,很难泾渭分明。

一般而言,题目如下所列。因应学员的程度不同及需求不同,则有不同的
上课方式与进度,时数也将因此有所调整。因此,可能调整开出 6 小时、
12 小时、18 小时、或 24 小时的课程。一个课程的成功,教学双方的
课前沟通占重要因素。通常我喜欢为要课单位量身打造课程,这很难在
主题上看出端倪,因为主题基本不变。所谓「量身打造」主要是在
上课时根据学员的反应,逐渐修正上课的方向、进度、焦点。


课程一:C++ 语言精要
时数:12 小时
适合对象:C++/OOP 的完全初学者,或是曾经概略接触过 C++ 语言,
          概念模模糊糊,尚未有实务经验者。
教材:通常我会选一本书为主要行进依据,再辅以讲义。
课程主题:
◎tools, resource, recommended books...
◎classes and objects
◎C++ object model : object size, this pointer.
◎initialization, construction(ctor), destruction(dtor), assignment(operator=).
◎functions overloading, name mangling, extern "C".
◎operator overloading:operator++, operator*, operator(), operator->
◎implicit type conversion (single-argument ctor, type conversion function)
◎pointer and reference. by value vs. by reference.
◎constness, inline functions
◎C++ standard library (included STL)
◎inheritance and composition
◎class templates and function templates


课程二:C++/OOP 物件导向程式设计思维与技术
时数:12 小时
适合对象:对 C++ 语法以及语言的全貌已有概念,曾经在专案上使用过 C++.
          希望对 OOP 有更精进掌握者.
教材:通常我会选一本书为主要行进依据,再辅以讲义。
课程主题:
◎Inheritance and Virtual Functions
◎Polymorphism in C++
◎C++ Object Model for Inheritance
◎RTTI, Cast Operators
◎Exception Handling
◎Effective C++ Programming (based on Scott Meyers's two books)
◎Interface Inheritance vs. Implementation Inheritance.
◎Memory Management (new operator, operator new,
                     delete operator, operator delete, auto_ptr...)
◎Framework Infrastruction
◎Patterns:Proxy classes, Double Dispatching,
            Reference Counting, Smart Pointers

-- the end
*/