C++ C++;类中的泛型字段/属性
我不知道如何建立这个,但这里是基本的。我有一个读取文件的类。在它运行的过程中,对于每个“片段”(给定文件中的许多片段),它都有一些通用的处理方法。在处理每个“片段”时,它的特定类型会被识别,我希望通过该特定类型添加另一个类的实例(通过该类的new*instance()) 这是我希望最终达到的基线C++ C++;类中的泛型字段/属性,c++,class,C++,Class,我不知道如何建立这个,但这里是基本的。我有一个读取文件的类。在它运行的过程中,对于每个“片段”(给定文件中的许多片段),它都有一些通用的处理方法。在处理每个“片段”时,它的特定类型会被识别,我希望通过该特定类型添加另一个类的实例(通过该类的new*instance()) 这是我希望最终达到的基线 class SpecificBaseline { public: SpecificBaseline(); virtual void ThisHandledPerDerive
class SpecificBaseline
{
public:
SpecificBaseline();
virtual void ThisHandledPerDerived();
}
Specific subclassed instances
class SubClass1 : SpecificBaseline
{ -- blah -- }
class AnotherSubClass : SpecificBaseline
{ -- blah -- }
class SubSub1 : AnotherSubClass
{ -- blah -- }
下面是一个简单的PerPiece实例,它正在检测它应该表示/操作的类型(根据上面的类/子类)
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...
}
类MyClass
{
废话。。。
}
并为每种类型构建一个指针数组,但不确定当指针可以是所需“SpecificBaseline”的任何类型时如何正确创建指针
欢迎提供任何帮助,甚至其他解决方案。您需要的是一个工厂方法
ReadSpecificType
。使所有特定类型从公共基类继承,并创建一个工厂方法,该方法将要解析的字符串作为参数,并返回一个指向公共基类的点。我考虑了工厂过程,但我想我缺少的是属性的声明,以及如何应用新创建的类。根据示例,我已经有了特定类型的类,但编译错误是不能从类型[x]更改为[y]其中X是顶层,Y是派生类。@ DRAP可能是与其他语言混淆的。在C++中,你可以用指针或引用(T&)来进行多态性。这就是为什么我建议你返回一个指向基类的指针。谢谢,我已经查看了工厂样本,但无法从头脑中得到它。(但那是昨晚11:30左右。)无论如何,我今晚回家后会回到我的项目。