→ MashiroKinji: SetNum()我知道本來就不需要const只是打個比方 02/25 04:29
推 AWEN221: 指標受常量規範時只保證指向的位址不變 02/25 07:30
→ AWEN221: 無法限制該位址的值不變 02/25 07:31
推 CaptainH: 會以為num是mutable 02/25 08:18
推 shadow0326: conceptual constness很難用編譯器檢查 02/25 11:28
推 littleshan: 某些語言具備transitional const可以檢查出這種狀況 02/25 12:06
→ littleshan: 不過C++並沒有這樣做,所以你得要自己注意 02/25 12:07
推 Killercat: 這是編譯防火牆最令人詬病的缺點 目前是無解的 02/25 13:50
→ Killercat: 應該說沒有一個簡單的解法啦.... 02/25 13:51
→ Killercat: 我們能做的只有盡量在簽名上面不要去迷惑使用者 02/25 13:53
→ MashiroKinji: 看來C++真的是很危險的語言... 02/25 20:09
→ PkmX: 你可以寫一個具有transitive const特性的smart ptr 02/25 20:27
→ PkmX: 其實我後來覺得應該讓他變成smart ptr的wrapper就好 這樣底 02/25 23:51
→ PkmX: 層不用unique_ptr也OK 02/25 23:52
→ PkmX: left as an exercise for readers (?) 02/25 23:52
推 Killercat: 也不能說危險,你用編譯防火牆本來就該知道限制是什麼 02/26 08:17
→ Killercat: 這是一種tradeoff,所以我說寫C++的經驗很重要 02/26 08:18
→ Killercat: 不過能猛然發現這問題也算滿不錯的了.... 02/26 08:19
→ Killercat: 另外你真的很想要transitional const的話 除了PkmX的 02/26 08:20
→ Killercat: 寫法以外 你可以試試看以「維持pImpl class const」方 02/26 08:21
→ Killercat: 向思考,把裡面的東西都弄出getter and setter 02/26 08:21
→ Killercat: 這麻煩到爆,但是可以相對簡單的解決一部份問題 02/26 08:21
推 littleshan: 就 const 這點來說,C++ 比 Java 或 C# 安全多了 02/26 10:45
→ uranusjr: C++ 很危險, 但這不是例子, 很多語言連 const 都沒有 02/26 16:57
→ suhorng: 因為沒有 mutation 的概念(炸 02/26 16:58
→ MashiroKinji: 最後決定買本primer來看了..不過他的教的順序跟其他 02/28 05:24
→ MashiroKinji: 跟其他的C++書順序差好多真的適合新手入門嗎?? 02/28 05:26
→ uranusjr: 你都會 class 和 pimpl 也不算純新手了吧, 有點自信 02/28 14:48