青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 119  文章 - 290  trackbacks - 0

博客搬家了哦,請移步
叫我abc

常用鏈接

留言簿(12)

隨筆分類

我的博客

搜索

  •  

積分與排名

  • 積分 - 305651
  • 排名 - 84

最新評論

閱讀排行榜

估計(jì)標(biāo)題和摘要都說不清楚,先直接用以前的一個(gè)demo說明一下多態(tài)吧。
demo中有一個(gè)terrain類,代表地形,地形要做的工作就是調(diào)整player和enemy的高度,以便讓它們看起來是正確的站在地面上。
負(fù)責(zé)這個(gè)工作的函數(shù)是CTerrain::Support(param),現(xiàn)在的問題是param的類型。在設(shè)定上,無論是terrain->support(player),或者terrain->support(enemy),Support函數(shù)內(nèi)所做的調(diào)用是完全相似的。
因此,第一直覺是,抽象出player和enemy的基類cast,并將被CTerrain::Support調(diào)用的函數(shù)寫成(純)虛函數(shù)。
代碼大概是這樣子:

class ??CCast
{
public :
??
virtual ?? void ??DoSomething1()? = ? 0 ;
??
virtual ?? void ??DoSomething2()? = ? 0 ;
}
;
class ??CPlayer?:? public ?CCast? {} ;
class ??CEnemy?:? public ?CCast? {} ;

class ??CTerrain
{
public :
??
void ??Support(CCast? * cast)
??
{
????cast
-> DoSomething1();
????cast
-> DoSomething2();
??}

}
;

接下來聊聊模板的表現(xiàn)。基于上面的代碼,把CCast類去掉,同時(shí)CPlayer和CEnemy類仍舊實(shí)現(xiàn)成員函數(shù)DoSomething1()和DoSomething2()。CTerrain類修改一下:
class??CTerrain
{
public:
??template
<typename?CAST>
??
void??Support(CAST??*cast)
??
{
????cast
->DoSomething1();
????cast
->DoSomething2();
??}

}
;

情況大概就是這樣子了,需要思考的是:
1,模板是編譯時(shí)刻決定選擇,多態(tài)是runtime時(shí)刻決定選擇。那么,如果事務(wù)的環(huán)境允許編譯時(shí)刻決定選擇,采用模板方案是否更有意義?CEGUI在msg->handler的映射上采用了模板機(jī)制。
2,多態(tài)有虛擬函數(shù)表的開銷,模板的實(shí)例化,同樣有類似于函數(shù)重載的開銷。不過,多態(tài)的開銷包括時(shí)間和空間上的,而模板僅僅是空間開銷。
3,如果堅(jiān)持用模板構(gòu)建整個(gè)project,那么設(shè)計(jì)上就要抹去runtime時(shí)刻決定選擇的行為,這是否會(huì)增加程序復(fù)雜度,降低可擴(kuò)展性?
posted on 2006-12-20 15:37 LOGOS 閱讀(1200) 評論(3)  編輯 收藏 引用

FeedBack:
# re: 模版與多態(tài) 2006-12-20 20:09 pengkuny
關(guān)注  回復(fù)  更多評論
  
# re: 模版與多態(tài) 2006-12-21 14:48 Francis Arcanum
如果不考慮在運(yùn)行期間動(dòng)態(tài)的增加邏輯的話,模板和虛函數(shù)其實(shí)是一樣的
因?yàn)閙ain不是模板函數(shù),同樣C++里new T也不能變成虛函數(shù)(因?yàn)闆]有反射),兩種思路歸根結(jié)底都必須在一個(gè)點(diǎn)上進(jìn)行switch或mapping。
模板的問題在于,它缺乏一個(gè)統(tǒng)一的型別,因此在對模板對象進(jìn)行持有的時(shí)候會(huì)有些困難。這個(gè)問題最后還是要靠虛函數(shù)來解決。  回復(fù)  更多評論
  
# re: 模版與多態(tài) 2006-12-22 15:43 小山日志
一個(gè)是運(yùn)行時(shí)的動(dòng)態(tài)多態(tài);一個(gè)是編譯時(shí)的靜態(tài)多態(tài)。
一個(gè)是優(yōu)先使用高內(nèi)聚的類來封裝數(shù)據(jù)和算法;一個(gè)是將算法和數(shù)據(jù)分別歸類,再以接口來使用,以此提高算法和容器的利用效率(這個(gè)是STL的做法,你提出的例子好像沒有體現(xiàn)出來^_^)。

關(guān)于你提出的第三點(diǎn),我以為那要看你的設(shè)計(jì)如何了。泛型和多態(tài)(動(dòng)態(tài)的)其實(shí)目的都是提供高內(nèi)聚、低耦合的設(shè)計(jì)方法,只是側(cè)重點(diǎn)不一樣啊  回復(fù)  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美性天天影院| 欧美精品一区二区在线观看 | 欧美精品乱码久久久久久按摩| 欧美一区二区三区四区高清| 欧美色偷偷大香| 久久三级福利| 夜夜嗨av一区二区三区| 狠狠干综合网| 欧美欧美天天天天操| 欧美精品首页| 亚洲国产高清高潮精品美女| 欧美一区三区二区在线观看| 久久激情网站| 久久亚洲综合网| 免费久久99精品国产| 亚洲国产日韩在线一区模特| 亚洲乱码精品一二三四区日韩在线 | 欧美成人免费网| 亚洲第一网站| 亚洲最新中文字幕| 欧美一区二区视频在线观看| 久久综合色影院| 欧美日韩一区二区在线| 国产亚洲成av人在线观看导航 | 蜜臀a∨国产成人精品| 亚洲激情视频在线| 午夜一区在线| 欧美激情亚洲自拍| 国产欧美日韩综合| 99av国产精品欲麻豆| 久久精品网址| 亚洲精品久久久久久久久久久久| 亚洲欧美中日韩| 欧美国产先锋| 黄色一区二区在线| 亚洲一区二区三区视频播放| 男女av一区三区二区色多| 亚洲一区二区视频在线| 日韩一级成人av| 亚洲国产乱码最新视频| 狠狠色丁香婷婷综合久久片| 亚洲电影免费在线 | 国内激情久久| 国产精品久久看| 久久久精品国产一区二区三区| 免费在线成人av| 亚洲一区二区欧美| 欧美日韩天堂| 亚洲精品国久久99热| 久久手机精品视频| 亚洲综合首页| 欧美日韩中文字幕在线视频| 亚洲国产精品v| 久久久777| 亚洲欧美精品在线| 亚洲国产日韩一区| 久久躁狠狠躁夜夜爽| 国产亚洲成av人片在线观看桃| 亚洲在线成人| 一本久久a久久免费精品不卡| 免费视频一区| 亚洲国产日韩欧美在线99| 久久综合亚州| 久久久久国产精品午夜一区| 国外成人在线| 久久久久久久一区二区三区| 亚洲欧美日韩国产综合在线| 国产精品久久久久久五月尺| 亚洲午夜精品久久| 日韩亚洲国产欧美| 国产精品激情电影| 午夜精品一区二区三区在线播放| 亚洲天堂偷拍| 国产欧美精品一区二区色综合 | 国产乱码精品一区二区三区忘忧草 | 欧美精品午夜视频| 亚洲国产精品久久91精品| 欧美~级网站不卡| 欧美国产一区二区| 亚洲午夜伦理| 小处雏高清一区二区三区| 国产一区二区欧美日韩| 欧美a一区二区| 欧美精品在线观看播放| 亚洲专区欧美专区| 性做久久久久久| 久久亚洲色图| 国产视频在线观看一区| 亚洲永久免费av| 午夜精品久久久久久久| 国产亚洲精品aa午夜观看| 久久视频在线看| 欧美黑人一区二区三区| 亚洲欧美日韩一区二区三区在线观看| 亚洲一区二区三区视频播放| 国产一区二区三区免费在线观看| 另类欧美日韩国产在线| 欧美国产日本在线| 亚洲欧美日韩国产一区二区| 久久成人国产| 在线一区欧美| 久久一二三区| 亚洲欧美不卡| 另类图片综合电影| 亚洲欧美日韩一区二区| 欧美99久久| 欧美在线观看视频| 欧美激情1区2区3区| 久久久久国产精品厨房| 欧美日韩一区二区在线观看视频 | 激情亚洲成人| 亚洲人午夜精品| 国产亚洲精品自拍| 亚洲黄色在线看| 国产在线精品自拍| 99国产精品久久久久久久久久| 狠狠干成人综合网| 亚洲欧美国产日韩天堂区| 一本色道久久综合狠狠躁篇怎么玩| 欧美在线一二三区| 亚洲一级在线观看| 欧美精品九九| 欧美好吊妞视频| 激情婷婷久久| 欧美亚洲日本一区| 午夜精品久久久久久久男人的天堂| 欧美高清视频免费观看| 欧美成人a∨高清免费观看| 国产乱肥老妇国产一区二| 日韩视频二区| 99精品热视频| 欧美夫妇交换俱乐部在线观看| 久久久久高清| 国产一区二区无遮挡| 亚洲一区日韩在线| 国产精品99久久久久久久女警 | 老司机精品久久| 久久人人爽国产| 国产日韩一区二区三区| 亚洲一区二区三区视频| 篠田优中文在线播放第一区| 欧美私人啪啪vps| 99re6热只有精品免费观看| 亚洲清纯自拍| 欧美国产日韩一区二区三区| 欧美国产日韩精品| 亚洲精品午夜| 欧美欧美午夜aⅴ在线观看| 亚洲老司机av| 亚洲一区二区三区高清| 国产精品s色| 亚洲欧美日韩国产中文| 久久精品一区二区国产| 禁久久精品乱码| 免费精品视频| 亚洲人成毛片在线播放| 在线一区二区三区做爰视频网站 | 久久av一区二区三区| 久久最新视频| 亚洲电影有码| 欧美日韩一区高清| 香蕉久久夜色精品| 欧美88av| 中文日韩在线| 国产免费观看久久| 玖玖精品视频| 在线一区二区三区做爰视频网站| 欧美一区国产一区| 亚洲黄色免费电影| 国产精品免费一区二区三区观看 | 欧美成人精品h版在线观看| 在线电影国产精品| 欧美日韩国产综合视频在线观看中文| 一区二区黄色| 久久亚洲精品一区| 99精品热6080yy久久 | 欧美成人午夜免费视在线看片| 亚洲理伦在线| 老司机免费视频一区二区| 一区二区电影免费在线观看| 国产日本欧美一区二区三区| 久久亚洲综合| 99精品久久| 欧美aa国产视频| 性色av一区二区三区在线观看| 亚洲国产日韩欧美综合久久 | 免费看av成人| 欧美亚洲尤物久久| 亚洲理伦电影| 久色婷婷小香蕉久久| 亚洲视频电影在线| 亚洲精品久久久久久久久久久久久 | 欧美国产日产韩国视频| 亚洲一二区在线| 亚洲国产一区在线| 美女日韩欧美| 久久久久国产精品www | 亚洲国产精品一区在线观看不卡 | 欧美成人嫩草网站| 久久久久久夜精品精品免费|