[問題] class和reinterpret_cast運用看不懂

作者: smilekerker (科科:))   2015-04-04 19:39:36
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
我現在在看Source code,其中這邊看不懂...QQ
麻煩前輩指點了
作者: PkmX (阿貓)   2015-04-04 19:55:00
看完還是不懂你的問題在哪 建議你可以去看一下placement new相關的東西 (自己要一塊未初始化的記憶體在上面建構和解構)另外他的DefaultFetchDefaultDecode<Impl>有compiler自動產生的default destructor
作者: LPH66 (-6.2598534e+18f)   2015-04-04 20:34:00
dtor 在原始碼沒有時會自動生成一個, 就是 gdb 看到的那個
作者: smilekerker (科科:))   2015-04-04 20:43:00
我知道dtor沒有寫的話,compiler會產生一個,但這個自動產生的dtor我們不能直接指定去使用吧? 像~T()?
作者: LPH66 (-6.2598534e+18f)   2015-04-04 20:48:00
所以上面才請你去找 placement new 的東西, 這跟那有關簡單說就是 placement new 因為空間索取跟初始化不是一起的所以刪除時解構跟空間釋放也必須分開, 不能直接 delete那要單獨呼叫 dtor 就是直接寫 xxx->~T()
作者: PkmX (阿貓)   2015-04-04 22:02:00
沒有說compiler生出來的我們不能用啊https://gist.github.com/PkmX/105a27503ef97aaf8ee4你的問題簡化版如上 把整段程式碼全部看懂你就會了~
作者: kingofsdtw (不能閒下來!!)   2015-04-05 01:54:00
買本書吧..孩子

Links booklink

Contact Us: admin [ a t ] ucptt.com