我試圖弄清楚,如何從模板類繼承到模板類。問題是:我不能使用 Parent 類的受保護成員。
例子:
template <class N>
class Parent {
protected:
N member;
public:
Parent(N aa){
member = aa;
}
};
class Child1: public Parent<int>{
public:
Child1(int a): Parent<int>(a) {
member = 1; // works
}
};
template<class Q>
class Child2: public Parent<Q>{
public:
Child2(int a): Parent<Q>(a) {
member = 1; // does not work (use of undeclared identifier)
}
};
如何在 Child2 類中使用“成員”?
謝謝你的時間
uj5u.com熱心網友回復:
您需要使用this->member或Parent<Q>::member。
在第二種情況下,member是一個“依賴名稱”,因為member來自基類模板的存在Parent<Q>依賴于模板中的型別class Q,而在第一個例子中沒有依賴型別,編譯器可以靜態分析Parent<int>包含member。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/420322.html
標籤:
上一篇:下拉按鈕失敗
下一篇:在繼承中使用解構式
