我想擁有一個模板父類(虛擬)。子類從父類繼承並定義其自身的類型。繼承自模板類,在子類中聲明類型
// PARENT
template <typename A, typename B>
class Parent
{
public:
Parent();
virtual ~Parent();
// ...
};
// CHILD
class Child : public Parent<SomeStruct , AnotherStruct>
{
public:
struct SomeStruct
{/*...*/};
struct AnotherStruct
{/*...*/};
Child();
~Child();
// ...
};
顯然,編譯器會抱怨尚未定義的「SomeStruct」。問題是如何實現類似的東西。一個簡單的方法是定義班級以外的結構,但這會讓事情變得更加醜陋。
看起來更好,然後在全局命名空間中聲明這兩個結構。 :) –