使用构造函数声明作为虚函数

Using constructor declaration as a virtual function

我不确定问题标题是否适合以下详细信息。

我正在处理大量不同的数据集。因此,我概念化了我将创建一个 Base class "Dataset","Dataset1"、"Dataset2" 等将从中继承。现在情况如下:-

我想要一个统一的构造函数如下:-

数据集(std::字符串类别,)

因此,对于每个数据集 class 我想用类别作为第一个参数和其他可变参数(取决于特定数据集)来初始化它们。

我的问题是:-

我可以在数据集class中有一个虚拟构造函数,它可以被"Dataset1"、"Dataset2"等继承吗?这是正确的设计选择吗?我如何实现它(可变参数等)?

C++ 中不能有虚构造函数。请参见http://www.stroustrup.com/bs_faq2.html#virtual-ctor构造子类的对象时应调用超类的构造函数

虽然 C++ 没有虚拟构造函数,但 'virtual constructor' 是一个众所周知的(尽管我不喜欢)设计模式。你可以google起来,很简单。