c++ - 返回bitset的成员函数,继承自基类

标签 c++ inheritance polymorphism bitset

因此,我正在尝试为我的一个项目创建一个基类,该基类将继承几个类。我的问题是我试图从其中一种方法返回 std::bitset,问题是在每个子类中都会返回不同大小的位集,所以我正在寻找一种方法来声明返回位集的方法大小未知,对于子类已知的基类来说是未知的。此外,我保证基类是抽象的,不会单独使用。

最佳答案

你不能那样做,std::bitset 的大小是其类型的一部分,不同大小的 std::bitset 是不同的 无关类型。您可以使用type-erasure 来抽象差异,但在您的特定情况下,只使用动态位集会更简单,例如 Boost 中可用的位集。 p>

http://www.boost.org/doc/libs/release/libs/dynamic_bitset/dynamic_bitset.html

如果您的基类只是一个实用程序类,不打算从外部世界使用,那么您可以使它成为一个在 std::bitset 大小上参数化的模板类:

template< int Size > class base
{
    typedef std::bitset< Size > bitset_type;
};

class derived : base< 128 > { ... };

但是您的每个类都将继承自不同的不相关基类。

关于c++ - 返回bitset的成员函数,继承自基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10857069/

相关文章:

ruby-on-rails - 多态模型、Forms 和 AssociationTypeMismatch

c++ - 是否需要删除存储为静态局部变量的数组,如何删除?

python - 如何获取子类的文件名?

java - java中的多态性

Asp.Net,从继承页面类获取对象?

javascript - JavaScript 中的 "inheritance"是什么?

c# - 构造函数中的抽象类型而不是具体类型

c++ - 如何使用 boost::vf2_subgraph_iso 获取边缘映射

c++ - 如何在不友好或声明指针的情况下在类主体中转发声明未嵌套的类

c++ 公历和儒略历继承