小编Eri*_*248的帖子

从继承的类 C++ 中获取模板类型

所以我试图填充从模板类继承的类的自定义集合,就像这样

template<typename T>
class Parent {
public: 
  T value;
  Parent(T val) {value = val;}
}

class ChildA : Parent<int> {
... 
}

class ChildB : Parent<double> {
...
}

// ==== Collections ====
template<typename cT>
class ParentCollection {
public:
  cT list[10];
}

class ACollection : ParentCollection<ChildA> {
...
}

class BCollection : ParentCollection<ChildB> {
...
}
Run Code Online (Sandbox Code Playgroud)

所以我想向 ParentCollection 添加一个函数,它允许我生成并添加一个新的 cT 类型列表数组。这应该由孩子们继承。如果我要在 ACollection 或 BCollection 中编写它,它将类似于:

void ACollection::Add(int val) {...}
Run Code Online (Sandbox Code Playgroud)

或者

void BCollection::Add(double val) {...}
Run Code Online (Sandbox Code Playgroud)

分别。但是,因为除了生成不同的孩子之外,它们都做完全相同的事情,所以我想在 ParentCollection 中写这个,但我不知道如何做这样的事情:

void ParentCollection::Add(T val) …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance templates

2
推荐指数
1
解决办法
847
查看次数

标签 统计

c++ ×1

inheritance ×1

templates ×1