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

时间:2013-11-25 12:07:01

标签: c++ class

我不知道如何构建它,但这是基础知识。我有一个读取文件的类。当它经历时,它有一些通用的处理和每个“片段”(给定文件中的许多片段)。当每个“片段”被处理时,它的SPECIFIC类型被识别,我想要添加特定类型的另一个类的实例(通过该类的新*实例()。这是我正在尝试的基础知识做。

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

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”的情况下正确创建指针。

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

1 个答案:

答案 0 :(得分:2)

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