在这种情况下如何管理继承?

问题描述 投票:0回答:1

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

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

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

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

c++ templates inheritance stl virtual
1个回答
0
投票

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

  1. 描述一列。在这种情况下,您将有一个描述表的列描述符数组,而您所需要的只是一个“多态容器”。使用该关键字可以使您更进一步。
  2. 包含一列的值。在这种情况下,您做错了方法。在顶层,使用像vector这样的容器包含行(而不是列!)。然后,每一行都包含一个简单的结构或值类。
© www.soinside.com 2019 - 2024. All rights reserved.