寫一個建構子
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上會有什麼考量
謝謝