template<typename T1, typename T2, typename T3>
class A: public A<T1, T2, void> {
public:
T1 a;
T2 b;
T3 c;
void set() { a = aa; } // Cannot find variable `aa' here!
};
template<typename T1, typename T2>
class A<T1, T2, void> {
public:
T1 aa;
T2 bb;
};
如上繼承,我有一個模板類A
,及其部分專門形式A'
。那麼A有可能從A'繼承?根據g ++,這似乎確定。然而,當我試圖訪問A'中的成員時,g ++開始抱怨:找不到那個符號。任何人都知道爲什麼?C++從專門模板類
'如上所述,我有一個模板類A和它的部分專用形式A'。那麼A有可能從A'繼承?'這聽起來不像是繼承自己的類嗎? – SingerOfTheFall
試着說'this-> aa'而不是'aa'吧? – Mehrdad
@SingerOfTheFall - 不,它沒有。它只是從更具體的一個派生出更通用的形式。前一段時間與容器一起使用的技巧是在void/void *上派生form/include容器專門化,它實現了所有的機制,並且只適用於通用形式。 – Tomek