我正在尝试用C++创建一个可以包含各种数据类型的表。因此,我创建了一个虚拟模板类“Column”,并从中派生了“IntColumn”,“FloatColumn”等。
然后,我想创建一个std::vector来用所有列填充它。问题是,如果我尝试创建列类型为的 vector ,则应该指定列的类型(因为它是模板),并且如果我想创建子类型的对象,我不能,因为它说构造函数被隐式删除。

我知道这对您来说似乎很愚蠢,但是我对这些事情并不陌生,在这种情况下我真的不知道该怎么办。

我的目标是能够创建一个列 vector (可以存储int,float,char,string,Date,Time类型),并具有可以从所有列类型中提取数据的方法。 (日期和时间是我已经创建的类)

如果我应该包含一些代码,请告诉我。

最佳答案

我不知道您的列类型应该代表什么,所以我将为您提供两种方法:

  • 描述一列。在这种情况下,您将具有描述表的列描述符数组,而您所需要的只是一个“多态容器”。使用该关键字可以使您更进一步。
  • 包含列的值。在这种情况下,您做错了方法。在顶层,使用像vector这样的容器包含行(而不是列!)。然后,每一行都包含一个简单的结构或值类。
  • 关于c++ - 在这种情况下,如何管理继承?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62243436/

    10-11 15:53