我想拥有一个模板父类(虚拟)。子类从父类继承并定义其自身的类型。继承自模板类,在子类中声明类型
// 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”。问题是如何实现类似的东西。一个简单的方法是定义班级以外的结构,但这会让事情变得更加丑陋。
看起来更好,然后在全局命名空间中声明这两个结构。 :) –