ETH官方钱包

創(chuàng)作內(nèi)容

0 GP

私有類別資料模式(Private Class Data Pattern)

作者:likwueron│2015-04-13 15:43:13│巴幣:0│人氣:156
今天看到一篇——雖然我不怎麼喜歡中國的用字和用語——有關(guān)Qt內(nèi)部解析的文章

哦,我引用的是(2)?因?yàn)槲乙盟脑虮容^不同。
通常,會用這招的人考量的是header的隱藏,反正使用者只要知道public的東西。
再來可能是編譯時(shí)間的問題,因?yàn)橛孟氯ゾ筒挥妹看胃馁Y料而把整串扯上邊的文件都重編一次。



具體來說吧,我的程式中GameObject裝了一個(gè)AnimationScheme的玩意,它是用來控制動畫中圖片的順序。
不過有些類別實(shí)際上是用不到的,很明顯的這有些浪費(fèi)。

正常來說,寫C++的人會用多重繼承,但我碰上Qt本身的問題。
那兩個(gè)親類別我都希望能用Qt那好用的Meta Object System。
但繼承兩個(gè)基於QObject的類別在moc處理的過程中會出問題,我們得用一個(gè)方法繞過去。

私有類別資料這種方式正好可以解決這種問題,因?yàn)橘Y料和對外的窗口脫勾了。
這表示資料部份的「類別」我可以用純C++的方式寫,這樣就可以用多重繼承了。
只是這樣一來我全部都要重寫了,真是災(zāi)難...



PS:
AnimationScheme中的Scheme是從光合作用的Z-Scheme來的。
其實(shí)我不是很清楚scheme是什麼意思,我對Z-Scheme的解釋是:長得像Z的有順序處理的序列。
而我寫AnimationScheme也是意在控制圖片顯示的順序,所以就套上去了。
引用網(wǎng)址:http://www.jamesdambrosio.com/TrackBack.php?sn=2807089
Some rights reserved. 姓名標(biāo)示-非商業(yè)性 2.5 臺灣

相關(guān)創(chuàng)作

同標(biāo)籤作品搜尋:設(shè)計(jì)模式|私有類別資料模式|Qt

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

喜歡★iqandadie 可決定是否刪除您的留言,請勿發(fā)表違反站規(guī)文字。

前一篇:四月是你的噴淚... 後一篇:2015春.新番電波...


face基於日前微軟官方表示 Internet Explorer 不再支援新的網(wǎng)路標(biāo)準(zhǔn),可能無法使用新的應(yīng)用程式來呈現(xiàn)網(wǎng)站內(nèi)容,在瀏覽器支援度及網(wǎng)站安全性的雙重考量下,為了讓巴友們有更好的使用體驗(yàn),巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現(xiàn)和功能。
屆時(shí)建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業(yè)系統(tǒng)版本才可使用)

face我們了解您不想看到廣告的心情? 若您願意支持巴哈姆特永續(xù)經(jīng)營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學(xué)】