Re: [问题] 使用指标的时机

楼主: kaneson (Lance)   2019-09-13 12:47:01
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

Links booklink

Contact Us: admin [ a t ] ucptt.com