国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

關(guān)于模板化基類的變量

2023-01-10 11:19 作者:sxlxcsxlxc  | 我要投稿

這大概是c++ template 的基礎(chǔ)吧,但是還是挺有意思的?


前段時間寫 kinetic priority queue 想試試用模板(實(shí)際上并沒有這種必要),發(fā)現(xiàn)派生類不能訪問到模板化的基類里面的成員,必須要用this才能訪問,感覺很奇怪。昨天在effective c++上面看到43條 know how to access names in templatized base classes 才知道是怎么回事。

我本來以為是這樣:由于基類是個模板類,繼承的時候并不知道基類當(dāng)中到底有沒有我想要訪問的變量,所以必須用this或者明確表示我要訪問基類的那個變量,于是編譯器就假設(shè)這個名字確實(shí)存在并且確實(shí)是個變量。然而仔細(xì)一想為什么編譯器會不了解我想要訪問的名字的信息呢?基類的定義編譯器已經(jīng)知道了,在實(shí)例化模板的時候基類自然也會有一份對應(yīng)類型的代碼生成,編譯器應(yīng)該可以獲取到模板基類當(dāng)中的所有信息,并不會產(chǎn)生什么問題。

看了書才知道,問題出在模板全特化

但是這又有什么問題呢,如果是在模板參數(shù)實(shí)例化的時候編譯器一樣可以知道基類的信息。好像只要在模板實(shí)例化的時候再來診斷問題就沒有這些麻煩了。只能說,較早發(fā)現(xiàn)問題應(yīng)該是比較好的。

另外,一個不能在 base class list 或者 member initialization list 當(dāng)中使用typename的例子


關(guān)于模板化基類的變量的評論 (共 條)

分享到微博請遵守國家法律
肃南| 沙田区| 永清县| 彩票| 巴里| 墨竹工卡县| 富蕴县| 孟村| 安顺市| 无极县| 上饶市| 景泰县| 蒙山县| 洪江市| 郓城县| 东乡县| 无锡市| 鄂托克旗| 容城县| 台东县| 当雄县| 北海市| 拜泉县| 山东| 青海省| 剑河县| 孟州市| 吉安市| 金堂县| 安吉县| 焉耆| 灵寿县| 长宁区| 华亭县| 洪洞县| 延长县| 宝山区| 金塔县| 轮台县| 泗水县| 长治县|