C++泛型类中的字段/属性



我不知道如何构建它,但这里是基础知识。我有一个读文件的类。在它进行的过程中,它有一些事情是通用处理的,并且针对每个"片段"(给定文件中的许多片段)。当每个"片段"被处理时,它的SPECIFIC类型被识别,我希望通过特定类型添加另一个类的实例(通过该类的new*instance())。以下是我尝试做的基本内容。

这是我想要最终到达的基线

class SpecificBaseline
{
   public:
      SpecificBaseline();
      virtual void ThisHandledPerDerived();
}
Specific subclassed instances
class SubClass1 : SpecificBaseline
{ -- blah -- }
class AnotherSubClass : SpecificBaseline
{ -- blah -- }
class SubSub1 : AnotherSubClass
{ -- blah -- }

这是一个简单的PerPiece实例,它正在检测它应该表示/操作的TYPE(根据上面的类/子类)。

class OnePiece
{
   public:
      ReadSpecificType(string *s);
   protected:
      [AnyDerivedFromSpecificBaseline] specificType;
}
OnePiece::ReadSpecificType(string *s)
{
   if string contains (whatever)
      specificType = new WhichSubClassDerivedFromSpecificBaseline();
   else if another expected key
      specificType = new DifferentSubClassDerivedFromSpecificBaseline();
   else
      etc...
}

我甚至在考虑像这样的仿制药

<typename T>
class MyClass<T>
{
   blah...
}

以及为每种类型构建一个指针数组,但不确定如何正确创建指针,因为它可以是所需的"SpecificBaseline"的任何类型。

感谢任何帮助,甚至其他解决方案。

您需要的是一个工厂方法ReadSpecificType。使所有特定类型从公共基类继承,并创建一个工厂方法,该方法将要解析的字符串作为参数,并向公共基类返回一个点。

最新更新