写一个建构子
Foo(ICallback* callback)
: mCallback(callback){ assert(mCallback); }
被问说那为什么你mCallback不用reference 然后Foo就开成(ICallback&)就好
我不想这样改
但我没有强力的说法比较出哪一种比较好或是合理
我的看法
用ref, caller势必要*ptr 做dereference才能传进来
虽然说reference 可以当作non null去操作
但有心要传*null也不是不行.
开reference 给别人传,比起pointer更有机会caller不小心传入local variable
以上都可以用一句话“哪有人会这样写”来否定用pointer存.
而用reference 可以给人一种 必定要想办法生出一个物件才能呼叫的感觉...
实在想不到哪个时候 用reference
才是合理的写法.
反而我自己是很少看过member 用reference去存...
不知道大家在design上会有什么考量
谢谢