1. Call Stack 觀念要補
2. ClassA a; // 等同無參數初始化, 而帶參數寫法例如: A a(10);
3. ClassA *a = new ClassA(); // 與C#與Java等新語言類似,但少了自動回收機制
4. ClassA a; a = b; // 淺層copy, 不同於指標傳遞, 在傳參數與return時同理.
一般來說除非必要,建議用 ClassA objA; 這種直接產生物件就好,
這種不用delete, 而何時存在何時消失就需要 Call Stack 觀念
(因為有new就要有delete, 沒管理好必有bug)
而這種變數不同於 primitive type 可以直接 assign,
所以才需要用 pass by address 或 C++ 特有的 pass by reference
(其他語言的 pass by reference 比較接近 c++ 的 pass by address)
同時原則上物件盡量還是上層產生再傳給下層處理, 這樣可盡量避免使用new