※ 引述《wowslr (檸檬子)》之銘言:
推 kwpn:因為const IDrive& getDrive()回傳const reference 05/19 12:39
→ kwpn:但foo(IDrive &drive)想要的是non-const 05/19 12:41
→ wowslr:所以這種情況我應該要提供 non-const 和 const 兩個版本? 05/19 14:31
→ CaptainH:或許 foo 的引數可以設計成 const IDrive & 05/19 15:31
→ CaptainH:或是IDrive&& 05/19 15:32
這看你究竟想做什麼而定
傳入參考作為引數隱含著函數本身會改變該引數內部值的概念
如果 foo 不會修改傳進去的 drive, 那麼就可以讓它直接接受 const IDrive &
這樣在函數語義上也會比較清晰
反之如果 foo 會修改 drive, 那麼當然你就必須為它提供 non-const 版本的 getter