條款43 學習處理模板化基類的名稱

2021-06-09 14:22:30 字數 513 閱讀 3410

先看程式:

class a

};templateclass drivedusea:public usea

};int main()

1.在基類函式呼叫動作之前加上this->:this->useafunc();

2.使用using宣告:

templateclass drivedusea:public usea

};

3.明確指出被調函式位於基類中:

templateclass drivedusea:public usea

}

但是第三種辦法有明顯的缺陷:顯示指明呼叫基類函式會是得動態繫結不會發生。

其實,它們做的事情都是相同的:對編譯器承諾基類模板的任何特化版本都將支援其泛化版本所提供的介面。

總之可以在派生類中通過this指標或者using宣告來告訴派生類使用的是基類的函式。

條款43 學習處理模板化基類內的名稱

條款43 學習處理模板化基類內的名稱 know how to access names in templatized base classes.內容 現在我們接到乙個編碼任務,任務要求我們的目標程式能夠傳送資訊到不同的公司去.這裡的資訊可以分為 被譯成密碼的資訊和未經加工資訊明文資訊.我們分析了任務...

條款43 學習處理模版化基類內的名稱

考慮以下 功能為傳送不同資訊至不同部門,採用模版方法。class companya class companyb 其他公司的類class msginfo 用來儲存資訊,以備用 templateclass msgsend void sendsecret const msginfo info 格式同上 ...

43 學習處理模版化基類內的名稱

1 考慮下面的場景,有個類模版templatebox 內部有個方法 現在子類templateclass bigbox public box bigbox內部使用方法 考慮出現什麼問題?2 首先一點,類模版產生出來的類之間,沒有關係。也就是box與box沒有關係。通過指定模版實參,可以產生不同的模板類...