最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)于模板化基類的變量的評論 (共 條)

分享到微博請遵守國家法律
交城县| 五峰| 包头市| 宕昌县| 嘉兴市| 和田市| 道真| 华坪县| 那曲县| 陆丰市| 启东市| 三原县| 赤水市| 玛纳斯县| 新干县| 壤塘县| 龙江县| 玉环县| 高安市| 江孜县| 木里| 石城县| 台前县| 泰州市| 青冈县| 光泽县| 阿拉善左旗| 图片| 淳化县| 友谊县| 郧西县| 盖州市| 哈密市| 馆陶县| 武平县| 辽中县| 巩义市| 昭苏县| 汶川县| 广汉市| 三江|