c++ - 在这种情况下,如何管理继承?

标签 c++ templates inheritance stl virtual

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

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

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

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

最佳答案

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

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

    相关文章:

    java - 如何将 Java 作用域限制为子类?

    c# - 将基类属性重写为派生类型并通过基类访问

    c++ - 在 noexcept 函数体中处理 std::optional 是否安全?

    c++ - UE4中如何将FText转为float

    c++ - R CMD SHLIB 'undefined reference' 并且不为 SWIG 生成的 R 包装器生成 .so/.dll

    php - 如何在没有 PHP 脚本的 smarty 2.x 模板中分配关联数组值

    c++ - 如何在 C++ 模板类中为单个方法创建专门化?

    C++:实现自定义主函数

    c++ - c++中两种形式的特化模板实现有什么区别

    c# - PLY 文件行的更通用的 TryParse()