c++ - C++ 中的多态集合

标签 c++

我需要编写一个类来接收一个集合,其中包含任意数量的任意“原始”类型的元素。我还需要能够知道每个成员的类型(或者至少是类型的大小)。 此类的目的是序列化元素以将它们存储在固定长度寄存器中的文件中。

这可能吗?

我知道 C++ 是静态类型的,并且在继承方面没有共同的父级(例如 Java 中的对象)。因此,我无法接收数组或 vector ,因为所有元素都应具有相同的类型。

我也想到了一个指针数组,但这样我就不知道元素的类型或它的大小。

有什么想法吗?

PS:没有找到类似的问题,如果有请转发。

最佳答案

你看过boost::any了吗? ?听起来它可能很适合您的问题:存储对象的多态集合,而不会丢失 void * 数组或类似 hack 中出现的类型信息。

关于c++ - C++ 中的多态集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1564240/

相关文章:

c++ - std::move 在 vector::insert 和 push_back 上的行为不同

c++ - 如何将字符串数组数据写入 C++ 中的输出文件

c++ - 用非常量变量声明数组大小

c++ - 将整数打包/解包到 char* 或从 char* 打包/解包时出现问题

c++ - 为什么我们使用 static_cast 为 NULL

在命名空间中调用 void 函数的 C++ 错误

c++ - 右值到左值的转换?

c++ - 引用特征矩阵

c++ - C/C++ Unicode 字符编码大小和默认格式

c++ - 为什么 is_base_of 都只是普通的 char 类型时会失败