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