使用构造函数声明作为虚函数
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起来,很简单。
我不确定问题标题是否适合以下详细信息。
我正在处理大量不同的数据集。因此,我概念化了我将创建一个 Base class "Dataset","Dataset1"、"Dataset2" 等将从中继承。现在情况如下:-
我想要一个统一的构造函数如下:-
数据集(std::字符串类别,)
因此,对于每个数据集 class 我想用类别作为第一个参数和其他可变参数(取决于特定数据集)来初始化它们。
我的问题是:-
我可以在数据集class中有一个虚拟构造函数,它可以被"Dataset1"、"Dataset2"等继承吗?这是正确的设计选择吗?我如何实现它(可变参数等)?
C++ 中不能有虚构造函数。请参见http://www.stroustrup.com/bs_faq2.html#virtual-ctor构造子类的对象时应调用超类的构造函数
虽然 C++ 没有虚拟构造函数,但 'virtual constructor' 是一个众所周知的(尽管我不喜欢)设计模式。你可以google起来,很简单。