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

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

GCC問題:使用依賴于模板參數(shù)的基類成員

GCC問題:使用依賴于模板參數(shù)的基類成員

C++
有只小跳蛙 2019-12-04 10:28:50
以下代碼無法使用gcc進(jìn)行編譯,但是可以使用Visual Studio進(jìn)行編譯:template <typename T> class A {public:    T foo;};template <typename T> class B: public A <T> {public:    void bar() { cout << foo << endl; }};我得到了錯(cuò)誤:test.cpp:在成員函數(shù)'void B :: bar()'中:test.cpp:11:錯(cuò)誤:未在此范圍內(nèi)聲明'foo'但是應(yīng)該!如果我更改bar為void bar() { cout << this->foo << endl; }那么它確實(shí)可以編譯,但是我認(rèn)為我不必這樣做。GCC遵循的C ++正式規(guī)范中是否有某些內(nèi)容,還是只是一個(gè)怪癖?
查看完整描述

3 回答

?
搖曳的薔薇

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

這在gcc-3.4中已更改。C ++解析器在該發(fā)行版中變得更加嚴(yán)格-按照規(guī)范,但是對于具有舊版或多平臺(tái)代碼庫的人來說仍然有些煩人。


查看完整回答
反對 回復(fù) 2019-12-04
?
ITMISS

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

編譯時(shí)的問題B<T>在于,A<T>編譯器無法知道其基類(它是模板類),因此編譯器無法從基類中了解任何成員。


較早的版本通過實(shí)際解析基本模板類進(jìn)行了一些推斷,但是ISO C ++指出,這種推斷會(huì)導(dǎo)致本不應(yīng)該存在的沖突。


在模板中引用基類成員的解決方案是使用this(就像您一樣)或?qū)iT命名基類:


template <typename T> class A {

public:

    T foo;

};


template <typename T> class B: public A <T> {

public:

    void bar() { cout << A<T>::foo << endl; }

};


查看完整回答
反對 回復(fù) 2019-12-04
  • 3 回答
  • 0 關(guān)注
  • 431 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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