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

隨筆 - 119  文章 - 290  trackbacks - 0

博客搬家了哦,請(qǐng)移步
叫我abc

常用鏈接

留言簿(12)

隨筆分類

我的博客

搜索

  •  

積分與排名

  • 積分 - 306400
  • 排名 - 84

最新評(píng)論

閱讀排行榜

估計(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)?;谏厦娴拇a,把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 閱讀(1205) 評(píng)論(3)  編輯 收藏 引用

FeedBack:
# re: 模版與多態(tài) 2006-12-20 20:09 pengkuny
關(guān)注  回復(fù)  更多評(píng)論
  
# 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)一的型別,因此在對(duì)模板對(duì)象進(jìn)行持有的時(shí)候會(huì)有些困難。這個(gè)問題最后還是要靠虛函數(shù)來解決。  回復(fù)  更多評(píng)論
  
# 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ù)  更多評(píng)論
  

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              翔田千里一区二区| 日韩亚洲欧美在线观看| 小嫩嫩精品导航| 亚洲图片你懂的| 亚洲人成在线观看一区二区| 久久视频精品在线| 久久综合给合久久狠狠狠97色69| 久久免费国产精品1| 免费看黄裸体一级大秀欧美| 免费一区二区三区| 最新国产成人在线观看| 一区二区三区四区蜜桃| 亚洲女性喷水在线观看一区| 久久国产综合精品| 欧美二区在线观看| 国产精品久久久久久av福利软件 | 亚洲精品视频在线播放| 亚洲人成在线免费观看| 亚洲视频在线一区观看| 久久www成人_看片免费不卡| 欧美不卡在线| 亚洲午夜未删减在线观看| 噜噜噜91成人网| 久久亚洲私人国产精品va| 欧美风情在线| 99爱精品视频| 性欧美video另类hd性玩具| 久久麻豆一区二区| 欧美日韩亚洲国产精品| 国内精品伊人久久久久av影院| 亚洲高清一区二| 亚洲午夜电影| 欧美成人午夜视频| 亚洲一区二区三区色| 久久久久久一区二区| 欧美视频精品一区| 亚洲国产成人av| 欧美一二区视频| 亚洲高清激情| 欧美一区网站| 欧美欧美在线| 黄色成人精品网站| 欧美一区二区三区免费大片| 欧美激情无毛| 久久aⅴ国产紧身牛仔裤| 欧美日韩国产高清| 亚洲激情第一页| 久久久噜噜噜久久中文字免| 亚洲视频成人| 欧美体内she精视频| 亚洲国产高清在线| 久久久蜜桃精品| 欧美亚洲综合久久| 国产精品影片在线观看| 亚洲中无吗在线| 一区二区精品国产| 欧美日韩一二区| 亚洲另类在线视频| 欧美激情中文不卡| 久久久久久网址| 精品999日本| 久久乐国产精品| 久久成人综合视频| 国产综合色一区二区三区| 久久福利毛片| 午夜精品区一区二区三| 国产精品伦理| 久久不射2019中文字幕| 小辣椒精品导航| 精品1区2区| 亚洲电影免费观看高清| 久久青草久久| 亚洲韩国青草视频| 亚洲国产专区| 欧美日韩免费观看一区三区| 在线亚洲高清视频| 亚洲欧美变态国产另类| 国产精品视频免费一区| 欧美在线在线| 久久精品成人一区二区三区| 在线观看欧美日韩国产| 午夜精品在线观看| 欧美国产日韩一区二区三区| 亚洲二区免费| 欧美成人免费网| 欧美精品久久久久久久久老牛影院| 日韩视频不卡中文| 99精品热视频| 国内外成人在线视频| 欧美成年人网| 欧美日韩在线播放| 久久www成人_看片免费不卡| 久久频这里精品99香蕉| 夜夜嗨av一区二区三区网站四季av| 91久久国产精品91久久性色| 欧美日韩精品是欧美日韩精品| 午夜精品久久久久久99热软件| 性色av一区二区怡红| 亚洲人成网站精品片在线观看| 日韩一本二本av| 黑人一区二区| 99热精品在线观看| 一区二区在线视频播放| 亚洲欧洲另类| 国内综合精品午夜久久资源| 日韩小视频在线观看| 好看的亚洲午夜视频在线| 日韩天天综合| 亚洲国产美女精品久久久久∴| 一区二区三区福利| 亚洲成人在线视频网站| 一区二区三区免费观看| 伊人色综合久久天天五月婷| 亚洲一区二区精品视频| 亚洲日本欧美| 久久久久久夜| 久久久久久久久久久久久久一区 | 国产永久精品大片wwwapp| 最近看过的日韩成人| 狠狠色狠狠色综合| 亚洲性夜色噜噜噜7777| 99精品热6080yy久久 | 裸体一区二区三区| 久久国产色av| 国产精品yjizz| 亚洲另类一区二区| 亚洲精品网站在线播放gif| 久久精品人人做人人爽电影蜜月 | 欧美一站二站| 国产精品成人v| 91久久精品国产91久久性色| 一色屋精品视频免费看| 亚洲欧美国产不卡| 亚洲综合日韩在线| 欧美日韩一区免费| 日韩一级黄色大片| 99视频精品全国免费| 免费在线欧美黄色| 欧美大片一区二区| 亚洲青色在线| 亚洲欧美日韩国产一区二区| 亚洲国产一区二区三区青草影视| 狠狠爱www人成狠狠爱综合网| 欧美一区1区三区3区公司| 亚洲淫性视频| 国产精品久久久久久久久久直播| 一二三四社区欧美黄| 亚洲视频电影图片偷拍一区| 欧美日韩免费| 亚洲一级二级| 久久九九热免费视频| 国产一区二区在线免费观看| 午夜日韩视频| 久久综合伊人| 亚洲精品久久在线| 欧美日本精品在线| 亚洲一区二区综合| 久久精品91| 欲色影视综合吧| 欧美a级一区二区| 亚洲精品中文字幕在线| 亚洲一区观看| 国产一二精品视频| 久久影视三级福利片| 最近看过的日韩成人| 在线亚洲成人| 国模大胆一区二区三区| 免费视频一区二区三区在线观看| 亚洲激情视频网| 午夜亚洲一区| 亚洲国产精品va在看黑人| 欧美成人有码| 亚洲欧美日韩区| 欧美激情精品久久久久久大尺度| 宅男精品视频| 国模私拍一区二区三区| 欧美成人在线影院| 性伦欧美刺激片在线观看| 欧美韩日亚洲| 亚欧美中日韩视频| 亚洲黄一区二区三区| 国产精品任我爽爆在线播放| 久久夜色精品国产欧美乱| 日韩一级大片| 欧美国产日韩一区二区在线观看| 亚洲一区二区三| 136国产福利精品导航网址应用| 欧美日韩国产精品专区| 欧美一区二区在线免费播放| 亚洲精品视频中文字幕| 久久久久久穴| 亚洲淫片在线视频| 亚洲欧洲精品一区二区三区 | 欧美成人高清| 欧美在线一级视频| 亚洲视频精选| 亚洲精品日韩久久| 欧美成人精品不卡视频在线观看| 亚洲欧美日韩区| 亚洲天堂av在线免费观看|