第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么我必須通過(guò)this指針訪問(wèn)模板基類成員?

為什么我必須通過(guò)this指針訪問(wèn)模板基類成員?

C++ C
烙印99 2019-05-29 17:15:44
為什么我必須通過(guò)this指針訪問(wèn)模板基類成員?如果下面的類不是模板,我可以x在derived課堂上使用。但是,使用下面的代碼,我必須使用this->x。為什么?template <typename T>class base {protected:     int x;};template <typename T>class derived : public base<T> {public:     int f() { return this->x; }};int main() {     derived<int> d;     d.f();     return 0;}
查看完整描述

3 回答

?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊

我想我找到了答案:GCC問(wèn)題:使用依賴于模板參數(shù)的基類成員。答案并非針對(duì)gcc。


更新:回應(yīng)mmichael的評(píng)論,來(lái)自C ++ 11標(biāo)準(zhǔn)的N3337草案

14.6.2從屬名稱[temp.dep]
[...] 
3在類或類模板的定義中,如果基類依賴于模板參數(shù),則在非限定名稱查找期間不會(huì)檢查基類范圍類模板或成員的定義點(diǎn),或者在類模板或成員的實(shí)例化過(guò)程中。

無(wú)論是“因?yàn)闃?biāo)準(zhǔn)是這樣說(shuō)的”算作一個(gè)答案,我不知道。我們現(xiàn)在可以問(wèn)為什么標(biāo)準(zhǔn)要求,但正如Steve Jessop的優(yōu)秀答案和其他人所指出的那樣,后一個(gè)問(wèn)題的答案相當(dāng)長(zhǎng)且可論證。不幸的是,當(dāng)涉及到C ++標(biāo)準(zhǔn)時(shí),通常幾乎不可能給出標(biāo)準(zhǔn)強(qiáng)制要求的簡(jiǎn)短而自成一體的解釋; 這也適用于后一個(gè)問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2019-05-29
?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊

x繼承過(guò)程中被隱藏。你可以通過(guò)以下方式取消隱藏:

template <typename T>class derived : public base<T> {public:
    using base<T>::x;             // added "using" statement
    int f() { return x; }};


查看完整回答
反對(duì) 回復(fù) 2019-05-29
  • 3 回答
  • 0 關(guān)注
  • 772 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)