1
私は前方に宣言する必要があるテンプレートクラスから派生したクラスを宣言することを試みています。ここで前方宣言されたテンプレートの基本クラスから派生したクラスを宣言するにはどうすればよいですか?
は、クラスの例です。ここで
class TType {
public:
TType() { }
};
template<typename T>
class Base {
public:
Base() { }
};
class Derived : public Base<TType> {
public:
Derived() { }
};
は、私は必要なものではなかったの推測です:
class TType;
template<typename T> class Base;
class Derived : public Base<TType>; // This fails
Derived* pDerived;
あなたはもちろん正しいですが、私がそれを試みたときに失敗しました。私の間違いは、前方宣言で 'namespace {class Derived} 'と' class Derived; 'でした。明らかに 'namespace'を使って何かが名前空間を持たないと言うのは、' namespace'をスキップするのと同じではないので、コンパイラはあいまいであると私に言っていました。 – Solx